امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DragAndDrop
نویسنده پیام
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #1
DragAndDrop
با سلام و خسته نباشید دوستان محترم
و تشکر از حسن نظر دوستان در پاسخگویی

من یک نمونه برنامه DragAndDrop میخوام که امکان Drag کردن از listbox را به listbox دیگه را داشته باشه البته جستجو کردم چیزی بر اساس listbox به listbox یا تکست پیدا نکردم .

البته کامپاننتهایی هست که این کار را انجام می ده ولی حتی المقدور نمی خوام از کامپاننت استفاده کنم
با تشکر فراوان
۰۵-اسفند-۱۳۹۰, ۱۹:۳۳:۴۰
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #2
RE: DragAndDrop
سلام.

کد:
' Code managing dropping from list one
' to list two
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     List1.OLEDrag    ' Begin dragging
End Sub
Private Sub List1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
     ' Only allow moves
     AllowedEffects = vbDropEffectMove
     ' Assign the ListBox selection to the DataObject
     Data.SetData List1
End Sub
Private Sub List2_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
     Dim strList As String
     ' Check the format of the DataObject
     If Not Data.GetFormat(vbCFText) Then Exit Sub
     ' Retrieve the text from the DataObject
     strList = Data.GetData(vbCFText)
     ' If the item was not dropped on itself
     If Not strList = List2.Text Then
         List2.AddItem strList
         'Remove the item from the ListBox
         List1.RemoveItem List1.ListIndex
     End If
End Sub
''
''
'' Code managing dropping from list one
'' to list two
''
Private Sub List2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     List2.OLEDrag    ' Begin dragging
End Sub
Private Sub List2_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
     ' Only allow moves
     AllowedEffects = vbDropEffectMove
     ' Assign the ListBox selection to the DataObject
     Data.SetData List2
End Sub
Private Sub List1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
     Dim strList As String
     ' Check the format of the DataObject
     If Not Data.GetFormat(vbCFText) Then Exit Sub
     ' Retrieve the text from the DataObject
     strList = Data.GetData(vbCFText)
     ' If the item was not dropped on itself
     If Not strList = List1.Text Then
         List1.AddItem strList
         'Remove the item from the ListBox
         List2.RemoveItem List2.ListIndex
     End If
End Sub
۰۶-اسفند-۱۳۹۰, ۰۰:۴۴:۲۹
ارسال‌ها
پاسخ
تشکر شده توسط : sahand87
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: DragAndDrop
خیلی ممنون ازکد ارسالی
ولی متاسفانه عمل نمی کنه . با کشیدن و رها کردن (متن) در لیست باکس عمل انتقال انجام نمیشه
و فقط خاصیت AllowedEffects = vbDropEffectMove را عمل می کنه.
اگه امکان داره یک نگاه مجدد بیندازین منتظرم.
متشکر
۰۶-اسفند-۱۳۹۰, ۱۰:۴۳:۴۰
ارسال‌ها
پاسخ
جلالی آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 1
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 6
( 78 تشکر در 45 ارسال )
ارسال: #4
RE: DragAndDrop
[code]
Public Class Form1

Public Dataa As String


Private Sub ListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
ListBox2.Focus()
Dataa = ListBox1.SelectedItem
End Sub

Private Sub ListBox2_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox2.MouseUp
If Dataa <> "" Then
ListBox2.Items.Add(Dataa)
End If
Dataa = ""

End Sub

Private Sub ListBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseUp
Dataa = ""
End Sub

End Class

از لیست باکس 1 بردار ودر لیست باکس 2 به انداز
البته اگر در لیست باکس 1 داده ایی باشد
۰۶-اسفند-۱۳۹۰, ۱۷:۱۶:۳۴
ارسال‌ها
پاسخ
تشکر شده توسط : sahand87
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #5
RE: DragAndDrop
جناب آقای جلالی متشکر از لطف شما
متاسفانه نتونستم با کدهای شما جواب بگیرم احتمالا مشکل کار با منه خواهش می کنم اگر امکان داره یک Sample لطف کنید .
۰۷-اسفند-۱۳۹۰, ۰۰:۳۹:۱۱
ارسال‌ها
پاسخ
جلالی آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 1
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 6
( 78 تشکر در 45 ارسال )
ارسال: #6
RE: DragAndDrop
[font=Arial]
?Sample
۰۷-اسفند-۱۳۹۰, ۱۳:۳۹:۰۴
ارسال‌ها
پاسخ
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #7
RE: DragAndDrop
آقای جلالی یک نمونه برنامه با کدهای که پیشنهاد نمودید چون متاسفانه نتونستم توی برنامه جفت و جورش کنم ممنون از لطف شما
۰۷-اسفند-۱۳۹۰, ۱۴:۰۹:۲۷
ارسال‌ها
پاسخ
جلالی آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 1
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 6
( 78 تشکر در 45 ارسال )
ارسال: #8
RE: DragAndDrop
دوست عزیز متاسفانه
من با ویرایشگر سایت مشکل دارم
یعنی من حتی نمی دانم چگونه می توانم یک عکس به پاسخ ام ضمیمه کنم چه برسد به ارسال کد نمونه
برای توضیح کارکرد کد عرض به خدمتتان
در فرم دو عدد لیست باکس ایجاد می کنیم
در قسمت تنظیمات Listbox1
ودر قسمت کلکشن چند ایتم اضافه می کنیم
برنامه را اجرا می کنیم باید در فرم دو عدد لیست باکس که یکی خالی ودیگری چند عدد ایتم دارد موجود باشد
اگر تا اینجا رسیدی به مرحله بعد می رویم
از نظر ظاهری دراپ داون برداشتن ایتم از یک کنترل وگذاشتن در یک کنترل دیگر با استفاده از کلیک چپ موس است اما
از نظر برنامه نویسی دراپ داون می توان گفت انتخاب ایتم در یک کنترل با MouseDown و کپی ان ایتم در کنترل دیگر
با MouseUp می باشد
ولی وقتی در روی یک کنترل MouseDown انجام می دهیم ودر همان حال دکمه موس را نگه داشته و بعد از حرکت دادن موس
در روی یک کنترل دیگر MouseUp انجام می دهیم اونت MouseUp انجام یافته متعلق به کنترل اولی است نه متعلق به
کنترل دومی چون فوکاس در اختیار کنترل اولی است پس تغییر فوکاس لازم است
برای کنترل لیست باکس 1 در اونت MouseDown کدزیر را وارد می کنیم

Private Sub ListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
ListBox2.Focus()
Dataa = ListBox1.SelectedItem
End Sub
ودراونت MouseUp لیست باکس 2 کد زیر را وارد می کنیم(کاپی و پیست می کنیم)


Private Sub ListBox2_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox2.MouseUp
If Dataa <> "" Then
ListBox2.Items.Add(Dataa)
End If
Dataa = ""

End Sub
برای انکه ایتم در اثر کلیک موس یا دابل کلیک موس به dataa انتقال پیدا نکند در اونت ListBox1_MouseUp
کد زیر را وارد می کنیم
Dataa = ""
در ضمن dataa در سطح public وبه صورت string تعریف شده است
اگر با این اوصاف باز مشکلت حل نشد روش ارسال فایل ضمیمه را یادم بده تا برایت ارسال کنم
ویا ادرس ایمیل
در ضمن این کدها در vb.net2010 نوشته - تست شده و ok شده است
۰۸-اسفند-۱۳۹۰, ۰۰:۰۱:۴۲
ارسال‌ها
پاسخ
تشکر شده توسط : sahand87
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #9
RE: DragAndDrop
با تشکر از لطف شما
من این کدها را برای VB6 می خواستم، متاسفانه نمی تونیم با VB6 این کدها را SET کنم.
من هم جایی برای فایلهای ضمیمه ندیدم مشکل شما را در ارسال فایل دارم .
۰۸-اسفند-۱۳۹۰, ۰۳:۰۵:۱۷
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #10
RE: DragAndDrop
دوستان عزیز

برای قرار دادن کد یا لینک عکس ها می تونید از قسمت پاسخ سریع که در پائین تمامی تاپیک ها

قرار داره استفاده کنید ( همین جایی که الان دارید باهاش پست جدید ارسال می کنید )

اما برای استفاده از امکانات پیشرفته و قرار دادن عکس یا فایل ضمیمه باید ابتدا بر روی کلید "پاسخ جدید"

که در ابتدا و انتهای هر تاپیک وجود داره کلیک کرده و سپس با استفاده از امکانات ویرایشگر حرفه ای

پست ها و فایل های مورد نظرتون رو ارسال کنید.
در ضمن برای درگ و دراپ کردن آیتم های دو تا لیست باکس داخل یک فرم باید:

اول خاصیت OLEDragDrop دوتا لیست رو بر روی Automatic بزارید

و سپس با استفاده از رویداد OLEDragDrop گزینه مورد نظرتون رو اضافه یا حذف کنید.

کد php:
Private Sub List1_OLEDragDrop(Data As DataObjectEffect As Long,_
 Button 
As IntegerShift As IntegerAs SingleAs Single)
List1.AddItem Data.GetData(1)
List2.RemoveItem (List2.ListIndex)
End Sub 
به همین خوشمزگی!!

اینم سورسش


.rar   Drag-Drop.rar (اندازه: 1.31 KB / تعداد دفعات دریافت: 42)



(آخرین ویرایش در این ارسال: ۰۸-اسفند-۱۳۹۰, ۱۲:۰۷:۲۷، توسط Di Di.)
۰۸-اسفند-۱۳۹۰, ۱۰:۳۱:۲۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sahand87, mohsen0025


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS