ในที่นี้ผู้เขียนให้ฟอร์มชื่อ FrmDD และ ListBox ชื่อ ListBox1 |
public partial class frmDD : Form
{
public frmDD()
{
InitializeComponent();
//กำหนดให้ฟอร์มรองรับการวาง(สิ่งที่ลากมา)
this.AllowDrop = true;
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
//ตรวจสอบชนิดของข้อมูลที่ลากเข้ามาว่าเป็นไฟล์หรือไม่
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy; // หากเป็นไฟล์ให้ใช้ Effect เป็น Copy
else
e.Effect = DragDropEffects.None; // หากไม่ใช้ไฟล์ให้ Effect เป็น None
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
// แปลงไฟล์ที่ลากมาให้เป็น File Path เก็บไว้ใน string[]
//ใช้ string[] เป็น array เพราะอาจมีหลายไฟล์
string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);
//วนลูปนำ File Path ใส่ใน ListBox
foreach (string File in FileList)
this.listBox1.Items.Add(File);
}
}
ทดสอบการทำงานด้วยการลากไฟล์จาก Window Explorer เข้ามาไว้ในโปรแกรม
จะได้ File Path ของไฟล์ทั้งหมดเข้ามาแสดงใน ListBox ท่านผู้อ่านสามารถนำไปต่อยอดได้เลย |
ที่มา : http://www.jonasjohn.de/snippets/csharp/drag-and-drop-example.htm
ไม่มีความคิดเห็น:
แสดงความคิดเห็น