我需要遍历窗体的文本框,这些文本框位于面板内。我正试着这样做……
For Each Cntrl As Control In DirectCast(Me.Controls(PanelName), Panel).Controls
next我需要将面板的名称提供给循环的原因是因为我有两个存在于两个不同TabPages中的面板。每个TabPage上都有一个执行相同功能的按钮,但面板和文本框具有不同的名称。我在一个处理两个TabPage按钮点击的函数中有一个循环,因此我需要这个循环指向右边的面板。
"PanelName“与目标面板的名称相匹配,并且面板的名称为System.Windows.Form.Panel。
我得到"Object reference not set to a instance of an object“。消息。
这是不可能的吗?
发布于 2013-05-10 05:21:38
不需要强制转换:
For Each Cntrl As Control In PanelName.Controls
Next如果您所拥有的只是面板的名称,而不是控件引用,那么您至少需要知道哪个TabPage拥有该面板:
For Each ctrl As Control In TabControl1.TabPages(1).Controls("panel1").Controls
Next或者,您可以使用:
Me.Controls.Find(PanelName, True)在递归搜索子控件时按名称返回面板。
https://stackoverflow.com/questions/16471247
复制相似问题