السلام عليكم...
لتجربة الكود التالي:
ضع على الـ Form مكون Label. اجعله عريضاً بعض الشيء (لا يهم ارتفاعه) ثم اضبط له الخصائص التالية:
أ. الخاصية OLEDragMode على 1-Manual.
ب. الخاصية WordWrap على True.
ج. الخاصية AutoSize على True.
* اضبط الخاصية WordWrap قبل الخاصية AutoSize حتى لا يتقلص عرض الـ Label.
في الحدث OLEDragOver للـ Label اكتب الكود التالي:
كود :
If Data.GetFormat(vbCFFiles) Then
Effect = vbDropEffectCopy And Effect
Else
Effect = vbDropEffectNone
End If
في الحدث OLEDragDrop للـ Label اكتب الكود التالي:
كود :
Dim Idx As Long
Dim FilesNames As String
If Data.GetFormat(vbCFFiles) Then
FilesNames = Data.Files(1)
For Idx = 2 To Data.Files.Count
FilesNames = FilesNames & vbCrLf & Data.Files(Idx)
Next Idx
Label1.Caption = FilesNames
End If
* شغل البرنامج و اسحب ملفاً واحداً أو أكثر على الـ Label من الـ Windows Explorer. عند الافلات ستظهر مسارات و أسماء الملفات في الـ Label.
* يمكنك تعديل الكود في الحدث OLEDragDrop لمنع قبول أكثر من ملف واحد و ذلك باختبار Data.Files.Count ما إذا كانت أكبر من 1.
* أصبح لديك مسار و اسم الملف في الـ Label و بالتالي يمكنك اختبار نوعه (txt مثلاً) و استعمال جملة Open لفتحه و عرضه في TextBox أو - إذا كان ملف صورة - في PictureBox... إلخ.
نرجو الاستفادة و السلام.