【发布时间】:2015-08-10 19:43:26
【问题描述】:
在我的程序中,我有一组自定义用户控件,它们都嵌套在可滚动面板内。目前,我有this code 允许我在其当前面板内 拖动和移动控件。我想要的是能够将它们拖到另一个面板(在同一个表单中),以便用户可以创建控件的可视化组织。然后计划存储他们的位置(相对于面板)并使用它来创建时间表。
我的问题是,每当我开始拖动控件时,它们所在的面板就会调整大小,并且控件永远不会移动到另一个面板。
我尝试在目标面板中将AllowDrop 设置为True,并且我尝试重置您当前拖动到新面板的控件的父级。
感谢任何帮助!
【问题讨论】:
-
要在容器之间移动,您需要向类中添加代码,当到达原始容器的边界时,该代码将在容器之间移动控件。此外,在我简短地尝试审查这一点时,我对您提供的代码有各种问题。我可以告诉您为什么要调整面板的大小,因为您的代码会通过 Container.Left 和 Container.Top 值更改来告诉它。这几乎就像您不允许移动控件,只是在窗体上移动它的父级,模拟控件的移动。
-
确实...您只是在使用该代码“模拟”拖放。您应该使用内置的 .Net 拖放功能实现 实际 拖放代码。如果您需要它看起来像控件本身正在被拖动,您可以在启动拖动时从 UserControl 本身创建一个动态图标。做一些研究...
标签: vb.net user-controls drag-and-drop panel