PDA

View Full Version : آموزش: Drag and Drop a File in Controls



alimanam
یک شنبه 23 بهمن 1390, 19:42 عصر
با سلام

دوستی سوال داشت که چطوری فایلی رو که به یک کنترل یا فرم Drag&Drop کنیم که مسیر و نام اون فایل رو بدست بیاریم سورس رو ضمیمه میکنم تا دیگران هم استفاده کنن .

http://www.hostpic.org/view.php?filename=57drag_drop.pnghttp://www.hostpic.org/images/57drag_drop.phttp://www.hostpic.org/images/57drag_drop.png

توضیحات تکمیلی : باید ویژگی Allow drop کنترلی که میخواین کار درگ دروپ در اون صورت بگیره رو به True ست کنین .

موفق باشید./

Hybrid
یک شنبه 23 بهمن 1390, 20:08 عصر
سلام دوست عزیز ممنون از سورس آموزشیتون .

معنی این دو تا قطعه کد چی میشه :


If e.Data.GetDataPresent(DataFormats.FileDrop, False) Then
e.Effect = (DragDropEffects.Move Or (DragDropEffects.Copy Or DragDropEffects.Scroll))
End If


Dim data As String() = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())

ممنون

alimanam
یک شنبه 23 بهمن 1390, 21:27 عصر
با سلام


معنی این دو تا قطعه کد چی میشه :در قطعه کد اولی که مشخص کردین در رویداد DragEnter کنترل مورد نظر که یک Panel هستش اتفاق میافته به این صورت که در ابتدا با یک شرط ساده و با استفاده از پارامتر e که از نوع DragEventArgs هستش مشخص میکنیم که اگه یک فایل یا فولدر به این کنترل به صورت Drag وارد بشه , رویداد شروع درگ شدن اون فایل اتفاق بیفته البته پارامتر e خودش دارای آرگومان و ویژگیهای دیگری هم هست . در رخداد DragDrop کنترل Panel1 که بعد از رویداد DragEnter اتفاق میفته مقداری که در رویداد قبلی مقدار دار شد رو استفاده میکنیم به این صورت که با متد DirectCast که کارش اینه که یک Object که دارای مقادیر مبهم و دارای Type مشخصی نیست رو استخراج میکنیم چون پارامتر e به صورت آرایه ایی ست میشه اما در عمل فقط دارای یک مقدار ثابت هست رو به صورت یک آرایه ایی بدست میاریم یعنی با استفاده از متغیر data که به صورت یک رشته آرایه ایی . مابقی کدها هم که بسیار ساده هستن .

موفق باشید./