C#窗體實現文件拖拽功能
1、首先要把你的窗體或者空間的AllowDrag屬性設置為允許
2、注冊DragEnter事件
3、獲得文件路徑,先通過e.Data.GetFormats()方法獲得所有數據格式
4、調用e.GetData()方法根據指定的數據格式獲得文件路徑
5、有了文件路徑,相信一切問題迎刃而解
下面是例子:
private void textBox1_DragEnter(object sender, DragEventArgs e) { //獲得數據格式 File.WriteAllLines("C:\\1.text", e.Data.GetFormats()); //獲得文件名 string[] filename = (string[])e.Data.GetData("FileNameW",true); textBox1.Text = filename[0]; string entesion = Path.GetFileName(textBox1.Text); if (!File.Exists(textBox1.Text.Trim())) { return; } //讀取文件流 using (FileStream fsOpen = File.OpenRead(textBox1.Text.Trim())) { using (FileStream fs = new FileStream("C:\\" + entesion, FileMode.Create, FileAccess.Write)) { byte[] buffer = new byte[1024 * 1024]; while (true) { int result = fsOpen.Read(buffer, 0, buffer.Length); if (result <= 0) { break; } else { fs.Write(buffer, 0, result); } } fs.Flush(); } } }
運行結果:

補充一點:
在win7下可能是因為權限不均衡不觸發DragDrop事件,所以我在里只用到DragEnter事件,你們可以試下DragDrop事件,可能用戶體驗要好點!
Newd
版權聲明
作者:扶我起來我還要敲
地址:http://www.rzrgm.cn/Newd/p/4765824.html
? Newd 尊重知識產權,引用請注出處
廣告位
(虛位以待,如有需要請私信)
浙公網安備 33010602011771號