2011-09-02 120 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