.net 的WinForm中要支持拖放,必须做两方面的工作----源和目的
源:在MouseDown事件中加入: DoDragDrop
lbxDomain.DoDragDrop(lbxDomain.SelectedItem, DragDropEffects.Copy)
目的:
1.设AllowDrop = true
2.在DragOver,DragDrop,DragEnter事件中处理
源:在MouseDown事件中加入: DoDragDrop
lbxDomain.DoDragDrop(lbxDomain.SelectedItem, DragDropEffects.Copy)
目的:
1.设AllowDrop = true
2.在DragOver,DragDrop,DragEnter事件中处理
private void txtDDL_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
{
e.Effect = DragDropEffects.Copy;
}
private void txtDDL_DragDrop(object sender, DragEventArgs e)
{
object obj = e.Data.GetData(DataFormats.Text);
}
private void txtDDL_DragDrop(object sender, DragEventArgs e)
{
object obj = e.Data.GetData(DataFormats.Text);
}
============
下面给一个简单实例
1.创建工程,放置一个 ListBox,用来接受从桌面或是资源管理器拖来的文件,命名为 listBox1
2.在设计器或代码中设置 listBox1 的 AllowDrop = true
3.为 listBox1 添加 DragEnter 和 DragDrop 事件代码
1.创建工程,放置一个 ListBox,用来接受从桌面或是资源管理器拖来的文件,命名为 listBox1
2.在设计器或代码中设置 listBox1 的 AllowDrop = true
3.为 listBox1 添加 DragEnter 和 DragDrop 事件代码
private void listBox1_DragEnter(
object sender,
DragEventArgs e)
{
//判断拖入的对象格式
if (e.Data.GetDataPresent( DataFormats.FileDrop, true) == true)
{
//允许拖放
e.Effect = DragDropEffects.All;
}
}
private void listBox1_DragDrop( object sender, DragEventArgs e)
{
//获取文件列表(文件夹会被当作文件处理)
string[] files = ( string[])e.Data.GetData( DataFormats.FileDrop);
//添加拖入的文件
foreach ( string file in files)
{
listBox1.Items.Add(file);
}
//或者这样
//listBox1.Items.AddRange(files);
}
{
//判断拖入的对象格式
if (e.Data.GetDataPresent( DataFormats.FileDrop, true) == true)
{
//允许拖放
e.Effect = DragDropEffects.All;
}
}
private void listBox1_DragDrop( object sender, DragEventArgs e)
{
//获取文件列表(文件夹会被当作文件处理)
string[] files = ( string[])e.Data.GetData( DataFormats.FileDrop);
//添加拖入的文件
foreach ( string file in files)
{
listBox1.Items.Add(file);
}
//或者这样
//listBox1.Items.AddRange(files);
}
===========