[英]Dynamically generated controls issue
我有一个固定有面板的表格。 然后,我在主面板(名为ContainerPanel)上动态创建15个面板(名称:panel_n)和15个图片框(名称:picturebox_n)。
在使用相关鼠标事件创建的面板(panel_n)上拖动任何图片框时。 我想获得拖动图片框的面板名称。 鼠标光标似乎被捕获。
我曾尝试创建IMessageFilter接口,但是在将任一图片框拖到任一面板上时,仍然没有触发任何事件。
ClientRectangle.IntersectsWith函数也不起作用,因为坐标始终为0,0。
我需要的是面板名称,将图片框拖到上面(最好在mouseup事件上)
如果给图片框一个OnMouseDown事件,它表示如下内容:
(sender as PictureBox).DoDragDrop(sender, DragDropEffects.Copy);
然后,您可以将面板的AllowDrop属性设置为true,并在其OnDragDrop事件中获得如下名称:
string myName = (sender as Panel).Name;
编辑:另外,您需要为面板提供一个OnDragEnter事件,如下所示:
e.Effect = DragDropEffects.Copy;
当然,您可以将“ Copy
更改为“ Move
或“ Link
”,也可以Copy
其更改为适合您正在执行的操作。 它只是更改使用的鼠标指针图标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.