在開發.NET WinForm程序時,有時候我們希望窗體上的文本框能接受鼠標拖放事件,比如允許將文件直接拖放到文本框中以直接獲取到文件的本地路徑,或者將選取的字符串直接拖放到文本框中等等。要實現這個功能其實很簡單,代碼如下。
1. 將文本框的屬性AllowDrop設置成True
2. 給文本框添加DragEnter事件
復制代碼 代碼如下:
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
{
e.Effect = DragDropEffects.All;
}
}
注意DataFormats下面有許多其它的屬性允許你將不同類型的數據拖放到文本框中。上面的代碼用於將文件的本地路徑拖放到文本框中。
3. 給文本框添加DragDrop事件以接收數據
復制代碼 代碼如下:
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
this.textBox1.Text = GetDragData((string[])e.Data.GetData(DataFormats.FileDrop));
}
你還可以給其它的控件添加鼠標拖放事件,如ListBox等,方法類似。