Most popular

วันพุธที่ 29 มิถุนายน พ.ศ. 2554

เทคนิคการ Drag and Drop File เข้ามาใช้ในโปรแกรม (C#)

เทคนิคนี้คือการทำ Drag and Drop กับฟอร์ม (ลากและวาง) ผู้เขียนสร้างฟอร์ม แล้วใช้ Control ListBox เพื่อรับ File Path ที่เลือกเข้ามา โดยที่คำสั่งการทำงานทั้งหมดจะอยู่ที่ Event DragDrop และ DragEnter ของฟอร์ม

ในที่นี้ผู้เขียนให้ฟอร์มชื่อ FrmDD และ ListBox ชื่อ ListBox1
Code ทั้งหมด


    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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น