2013-06-04 27 views
0

我有一個WinForm與3個不同的groupboxes。此外,我的WinForm包含一個tablelayoutpanel,每個單元格中的另一個面板可以包含對象。C#DragDrop;如何檢索源的父項?

當拖動這些對象成組框我應該觸發基於對象來自的tablelayout的細胞的作用。

的問題是,我不能找到一種方法來確定拖動對象的父面板。

我怎樣才能最好地做到這一點?

回答

0

你可以做類似下面接入小區,特別是電池板。然後將此面板實例保存到公共變量並在執行拖動,拖動輸入或任何需要它的位置時進行操作。

var currentlySelected = layoutPanel.Cell(x,y).Controls[0] as Panel 
+0

好吧,這可以工作,但請原諒我不完全理解。 tablelayout的單元格都包含一個面板,面板可以包含多個對象。當選擇一個隨機對象時,我怎麼知道當前保存的對象在哪個面板中? – Hetiwos

+0

正如你所說,面板是默認的父項(因爲單元格有一個面板,並且放置在單元格內的所有控件本質上都在面板內部)。上面的代碼在單擊單元格內的任何控件時會爲您提供面板對象。現在將當前選定的面板存儲到一個公共變量(上面的例子將它保存在privateSelected中)。您現在將有面板參考(公共變量),它是當前所選對象/控件的父項。我希望它很清楚。 – Nair