C# winform 如何在Panel控件的拖拽DragDrop事件中获取Label对象

sxl_88 2015-05-07 09:17:54
在C# winform中,在form窗体中有四个Panel控件(panel1、panel2、panel3、panel4)以及三个Label控件(label1、label2、label3)。
目前需要将任意一个Label控件对象拖入任意一个Panel控件中。一旦松开鼠标,那么拖拽过程结束。此时应当处理Panel控件的DragDrop事件。

请问,在Panel控件的DragDrop事件中,如何获取Label控件对象,用来判断拖入Panel控件的是哪个Label控件对象(label1、label2、label3)。
...全文
687 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxiangde 2015-10-22
  • 打赏
  • 举报
回复
Dim a As Label = e.Data.GetData(GetType(Label).FullName, True)
  • 打赏
  • 举报
回复
e.Data.GetData,查看这个方法的几种重构方法 然后label的MouseDown事件中((Label)sender).DoDragDrop("Name", DragDropEffects.Move | DragDropEffects.Copy);
sxl_88 2015-05-08
  • 打赏
  • 举报
回复
引用 5 楼 starfd 的回复:
其实不用tag,你将label的Name传递过去,然后在DragDrop中通过GetData获取Name,这时候就可以FindControl了
能具体点吗?谢谢!
  • 打赏
  • 举报
回复
e.Data.GetData(typeof(Label))
直接传Label,不知道这样可不可行
sxl_88 2015-05-08
  • 打赏
  • 举报
回复
引用 7 楼 starfd 的回复:
e.Data.GetData,查看这个方法的几种重构方法 然后label的MouseDown事件中((Label)sender).DoDragDrop("Name", DragDropEffects.Move | DragDropEffects.Copy);
在panel的DragDrop事件中,用下面的代码无法获取到Label对象,请问怎么改下? private void label1_MouseDown(object sender, MouseEventArgs e) { //左键的话(表示拖拽开始) if ((e.Button == System.Windows.Forms.MouseButtons.Left)) { label1.DoDragDrop(label1, DragDropEffects.Copy | DragDropEffects.Move); //形成拖拽效果,移动+拷贝的组合效果 } } private void panel1_DragDrop(object sender, DragEventArgs e) { object aa = e.Data.GetData("Name"); //取不到label1这个对象,这个地方应该如何改下? }
  • 打赏
  • 举报
回复
其实不用tag,你将label的Name传递过去,然后在DragDrop中通过GetData获取Name,这时候就可以FindControl了
sxl_88 2015-05-07
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
通过label的tag标签
关键想知道在Panel控件的拖拽DragDrop事件中,如何通过label的tag标签获取具体是哪个label对象被拖入panel控件中?
sxl_88 2015-05-07
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
通过label的tag标签
能具体点吗?谢谢!
  • 打赏
  • 举报
回复
通过label的tag标签

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧