2013-06-04 22 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