实现拖拽功能需要注意如下几个事件:
1.数据源的MouseDown事件:(当鼠标指针在组件上方并按下鼠标按钮时发生)
在这个事件中添加数据控件的DoDragDrop方法
2.目标容器的DragEnter事件:(在鼠标将某项托到该控件的工作区时发生)
3.目标容器的DragDrop事件:(拖放完成时发生)
需要注意:必须将数据源控件和目标容器控件的AlloDrop属性设置为True;
实现一个Demo如下:有两个listbox控件,将listbox1中的数据托到listbox2中
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
this.listBox1.DoDragDrop(this.listBox1.Items[this.listBox1.SelectedIndex],DragDropEffects.Copy);
}
private void listBox2_DragEnter(object sender, DragEventArgs e)
{
if (e.Da
{
e.Effect = DragDropEffects.Copy;
}
}
private void listBox2_DragDrop(object sender, DragEventArgs e)
{
this.listBox2.Items.Add(e.Da
}