1.选中窗口->属性 ->AllowDrop,设为 True 后可以允许控件接收拖放到其上面的数据。
2.选中要接收拖拽事件的物体(比如说TextBox,button)->属性->AllowDrop,设为 True 后可以允许控件接收拖放到其上面的数据。
3.选中要接收拖拽事件的物体(比如说TextBox,button)->Events事件->DragDrop 鼠标左键在方框内双击自动生成事件响应函数
4.选中要接收拖拽事件的物体(比如说TextBox,button)->Events事件->DragEnter 鼠标左键在方框内双击自动生成事件响应函数
private void TextBox1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
//得到拖进来的路径,取第一个文件
string path = files[0];
try
{
textBox3.Text = path;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
}
private void TextBox1_DragEnter(object sender, DragEventArgs e)
{
//如果拖进来的是文件类型
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] paths = e.Data.GetData(DataFormats.FileDrop) as string[];
//得到拖进来的路径,取第一个文件
string path = paths[0];
//路径字符串长度不为空
if (path.Length > 1)
{
//判断是文件夹吗
FileInfo fil = new FileInfo(path);
if (fil.Attributes == FileAttributes.Directory)//文件夹
{
//鼠标图标链接
e.Effect = DragDropEffects.Link;
}
else//文件
{
//鼠标图标链接
e.Effect = DragDropEffects.Link;
}
}
else
{
//鼠标图标禁止
e.Effect = DragDropEffects.None;
}
}
}