2011-09-02 80 views
7

我想在一个winform应用程序中拖放一个控件(例如标签)。我看到了一些拖放文本的例子,但这不是我想要的。我想让用户移动一个控件。任何人都可以指导我使用一些资源或示例吗?谢谢。拖放winform控件

+0

成为流行等问题你只是想重新定位控制还是需要的“水滴” -features其中的信息是TR ansfered? – Carsten

+3

[这里](http://www.codeproject.com/Tips/178587/Draggable-WinForms-Controls?display=Print)是有用的简单扩展。 – Reniuz

+0

另请参阅我的代码项目arcticle:[www.codeproject.com/Articles/36412/Drag-and-Drop-ListBox](http://www.codeproject.com/Articles/36412/Drag-and-Drop-列表框)。但仅仅在表单上移动Label araound不是拖放操作! –

回答

3

你应该看看如何使拖动控件的例子。

在SO中也有一些答案。

看到这个Move controls when Drag and drop on panel in C#

这是怎么举办窗体设计器上的一个完整的例子:

Tailor Your Application by Building a Custom Forms Designer with .NET

我很久以前做的德尔福类似的东西,将搜索源代码,转换它为.NET C#,并就此事维基页面,因为它是最近:)

+0

达维德Piras酒店将是很好,如果你可以展示如何托管表单设计作品比添加代码,以便控制运动更好,\t BTW保存新的位置供以后形式加载的原始链接,托管设计师已经过时了。一个可能的环节是https://blogs.msdn.microsoft.com/rprabhu/2004/06/15/designer-hosting-in-whidbey/?replytocom=5005#respond 但更换是不是因为它是非常有用的不显示来发出C#代码或者可以用设计器表面做什么。还有很多实现细节被遗漏了。 – gg89

1

据我理解,你想砸控制被称为容器,事实上任何控制可以作为容器采取行动。因此,首先在容器中,您需要启用拖放属性以及需要拖动的控件的拖动属性。

然后写事件(Candrag,candrop,controladded等)对每个控制,其中,其中,一些逻辑以保持对象,并显示它们作为你可能想。

说一个例子,其中,您希望从combombox拖动imagetext到一个图片框,然后让图片框分析目录中的文本和罚款相关的文件名,并将该图片加载到其目录中。

所以在这里,当你开始拖动从combombox文本,你必须写在事件candrag一些逻辑。然后,一旦你放弃了,你必须编写逻辑来理解添加了什么样的对象,并在放弃其他控制的控件中获取与它相关的文本(有点解密)。

对不起,我现在没有代码给你,但我希望你知道它是如何完成的。可能是这篇文章可以帮助你吗? http://vicky4147.wordpress.com/2007/02/04/a-simple-drag-drop-in-winforms/

+0

事实上,你可以但是你不会真的把控件放在按钮或复选框中。只有表格或面板,其他几个都不错。 –

+0

是的,真的,可能是我们没有理由,没有用拖动n放入文本框的权利。毕竟文本框只能显示删除的控件中的文本(如果存在)。所以没有用:)。 – Zenwalker