在UserControl中反映以检查包含的表单。 C#

时间:2010-02-11 20:33:04

标签: c# reflection user-controls

我的项目是用c#编写的。我有一个我设计的用户控件。在那个usercontrol中,我希望能够通过反射来查看控件所在的表单,以查看表单上的所有其他控件。

我该怎么做呢?我已经使用反射来完成dll,但不是用于这样的事情。

总结:我的usercontrol放在一个表单上,我希望我的usercontrol到onLoad查看表单上的所有其他控件(有时我想将它限制在同一个容器而不是整个表单但是我可以想出来后来)。

如果有人有任何想法,我也会接受不使用反思的想法。

谢谢!

编辑:

所以我试着简单地浏览一下父控件,这对于我试图做的事情没有用,这是我在上面严重解释它的错。

让我提供一些细节。

我知道在主窗体上会有一个ContainerListView控件,现在当你向containerlistview添加列时,会创建ContainerListviewColumnHeaders。它们的声明出现在表单的initalizeComponent()中。我想要做的是在我的usercontrol中我想查看表单并找到所有的ContainerListViewColumnHeader,但是因为它们不是'Control'类型(它们是'Component'),所以它们不会出现在前面的方法中。 询问Containerlistview不是一种选择。

1 个答案:

答案 0 :(得分:5)

无需反思。

只需查看UserControl.ParentForm - 这是托管UserControl的表单。从那里,你可以通过Form.Controls迭代(递归)。