【发布时间】:2016-03-02 18:49:05
【问题描述】:
我尝试过用谷歌搜索方法来获取当前表单的子表单的数组或列表,但无济于事。有没有标准的方法来做这样的事情?我正在使用 .net frameowkr 4.0 Visual Studio 2013。
我试过了
For Each childForm As Form In Me.MdiChildren
Debug.WriteLine(childForm.Name)
Next
当我知道存在子窗体时,但我从未在调试中输入 WriteLine 代码。长度为0。
【问题讨论】:
-
您标记了
vb.net和c#是否重要,因为您提供的示例在vb.net中。您还确定您引用的Form确实有孩子吗?引用表单应具有属性IsMdiContainer = True。如果是这样,那么您应该能够获得对父级(我)开放的所有子级实例...... -
@Codexer 任何一种语言的解决方案都可以。两者之间的转换或多或少是微不足道的。
-
另外,您的
Form类的名称是什么。您可以在For Each语句中使用它们的类名...例如:For Each childForm As YOURCLASSNAME In Me.MdiChildren... 但如果不是那种类型,也可能引发异常...然后您可以将其声明为对象然后使用它... -
@Codexer 是的,我可以,但根据我的经验,检索类型与迭代对象的长度无关。我正在寻找一种在 winforms 中执行此类操作的标准方法,除非我尝试标准并失败,否则代码的细节无关紧要。此外,更通用的解决方案会更有利。
-
我们可以看看你在子表单实例化时正在做什么的例子吗?只要设置了表单 .MdiParent 属性并且此代码是从父表单运行的,您所拥有的就应该可以工作。