C#WinForms在面板之间移动元素

时间:2011-05-28 13:30:25

标签: c# .net winforms drag-and-drop

我需要创建一个包含两个面板的表单: 1.目的地 2.来源 在源面板上将有图片框。我需要能够使用鼠标将它从源移动到目标面板上的点。

我遇到与面板的不同坐标相关的问题。

请帮助提供建议或了解该怎么做。

1 个答案:

答案 0 :(得分:5)

移动这些控件需要更改其Parent属性。这并不容易,当用户使用鼠标拖动时,没有时间做这件事。您还将获得面板剪切控件的效果,您无法在一个控件的一半和另一个面板上的另一半上显示它。是的,您必须在更改父级时更改控件的“位置”属性,否则它将跳转。

解决问题,不要使用两个面板。它只需要像面板一样看起来,可以通过在窗体的Paint方法中绘制一个(或者OnPaint覆盖,更好)来轻松完成。使用e.Graphics.DrawRectangle或FillRectangle。