2022年10月4日 星期二

C# TextBox 拖入數據 為路徑

DragDrop 拖曳至TextBox

A

 

 

 


     private void textBox1_DragDrop(object sender, DragEventArgs e)
        {
            textBox1.Text = ((string[])e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();
        }
        private void textBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.All;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

 

 

拖曳檔案進去就會看到一個+的符號

b

 

 

image

資料來源:https://dotblogs.com.tw/joe80075/2012/12/14/85682

1、 通過DragEnter事件獲得被拖入窗口的“信息”(可以是若幹文件,一些文字等等),在DragDrop事件中對“信息”進行解析。
2、接受拖放控件的AllowDrop屬性必須設置成true;
3、必須在DragEnter事件中設置好要接受拖放的效果,默認為無效果。(所以單獨寫DragDrop事件是不會具有拖拽功能的)

TextBox DragEnter事件(在用鼠標將某項拖動到該控件的工作區時發生)

    private void textBox2_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.Link;
                this.textBox2.Cursor = System.Windows.Forms.Cursors.Arrow;  //指定鼠標形狀(更好看)  
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }  
        }
.

DragDrop 在完成拖放操作時發生

 private void textBox2_DragDrop(object sender, DragEventArgs e)
        {
           string path = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();  
           textBox2.Text = path;  
           this.textBox2.Cursor = System.Windows.Forms.Cursors.IBeam; //還原鼠標形狀  
        }

C# TextBox 拖入數據 為路徑

 資料來源: https://www.796t.com/content/1505121614.html

沒有留言: