日期:2014-05-19  浏览次数:20801 次

(求教)鼠标拖动控件问题
小弟想实现将一幅图片拖动至一个列表中的一条记录内,也就是将这幅图片的一些文字信息,比如图片的名称给列表中的那条记录,然后可以显示。我知道应该用DoDragDrop   方法,但不知道具体怎么写代码。
哪位高手能指点下,请附上详细代码和说明,谢谢!

------解决方案--------------------
你需要的拖放文本。在哪个控件上拖放,道理是一样的。

摘录:《程序员秘书》--源代码--字符、字符串、文本--文本的拖放操作
5、在Form1.cs的视图设计器中,选中label1,在属性框中选中事件,双击MouseDown,在Form1.cs的代码设计器中,添加修改如下代码
private void label1_MouseDown(object sender, MouseEventArgs e)
{
label1.DoDragDrop(label1.Text, DragDropEffects.Copy|DragDropEffects.Move);//启动拖动操作
}
6、在Form1.cs的视图设计器中,选中textBox1,在属性框中选中事件,双击DragEnter,在Form1.cs的代码设计器中,添加修改如下代码
private void textBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text))
e.Effect = DragDropEffects.Copy;//复制效果
else
e.Effect = DragDropEffects.None;//没有效果
}
7、在Form1.cs的视图设计器中,选中textBox1,在属性框中选中事件,双击DragDrop,在Form1.cs的代码设计器中,添加修改如下代码
private void textBox1_DragDrop(object sender, DragEventArgs e)
{
textBox1.Text = e.Data.GetData(DataFormats.Text).ToString();//显示拖放的文本
}

提供各式各样的C#例子,详见:http://www.psec.net.cn