2009-11-08 21 views
2

我的情況是這樣的,我有DockPanel Suite雙贏的表單應用程序和大量的控制,這覆蓋整個屏幕,如何啓用拖放爲所有的孩子控制

我想啓用d & d從Windows資源管理器到應用程序的文件。我知道如何實現D & D,但似乎如果我爲主父窗體啓用它,則只有應用程序標題欄和任務菜單圖標反映了D中的更改D & D.

我想要整個表單接受來自資源管理器的文件。我是否必須爲每個頂部控件的文件啓用D & D顯示在我的應用程序中?

我肯定是實現這更好的辦法,幫助嗎?

澄清

當用戶拖動從Windows資源管理器的文件到我的形式,我想在表格的每一個地方給予反饋這樣的事件。就像你可以從資源管理器拖動一個文件到Visual Studio一樣,拖動它的位置並不重要,應用程序接受該文件。

+0

我刪除我的答案/評論,感覺我應該只提出的意見在VS 2010 Beta 2中:從「外部」拖動cs文件:你只能在VS解決方案資源管理器或降。在VS窗口本身在別的地方拖動:你剛得到一個「無法刪除此」光標 要對您的應用程序的每個控件給予一定的dragover反饋是,我認爲,將需要事件處理程序的任何複雜的設置。遞歸地在表單上的每一個控件,或者窗體上的一個拖拽輸入時(如果我不確定這個工作是否有效),就像窗體上的一個透明窗口一樣令人難以置信的黑客攻擊。最好, – BillW 2009-11-08 12:57:49

+0

我認爲你的回覆是一個很好的答案,我建議你取消刪除它 – Amirshk 2009-11-12 05:51:39

回答

0

我還沒有使用DockPanel套件,但使用Visual Studio窗體設計器創建窗體拖放功能並在窗體上創建適當的窗體,我添加的幾乎所有東西(沒有屬性都改變)允許窗體「查看」拖放操作。包括Panel,SplitContainer,TabControl,ListBox,Button,ListView。我想唯一沒有工作(和問題,我當我到達這個頁面)是富文本控制,我想這是因爲它允許將正拖放編輯。

我的猜測是,這是DockPanel中套件的特定行爲。我對此一無所知,但我猜想它必須使用拖放來實現其停靠功能。也許有些事件可以在DockPanel面板級而不是表單級別掛鉤。

0

我不得不使用組件從DevExpress的類似的問題,而是設法確保所有用戶控件必須AllowDrop = false集來解決這個問題。基本上,運行解決方案的AllowDrop = true搜索,並確保只有您的主要形式有它設置(你可以從所有受影響的設計師刪除所有此類線路,因爲false是默認值。

這讓我有一個地方,處理所有拖/放操作

相關問題