在winform上找到隐藏的控件并使它们在运行时可见?

时间:2010-11-22 07:46:03

标签: c# winforms controls

我有这种情况,我有一个winform,其中有10到15个标签和组合框,这些都是不可见的。现在在运行时我传递了多少这些被激活的?他们的名字属性是从lable1到lable16和combobox1到combobox16。我正在使用以下代码来测试我是否可以找到控件,但它似乎全部失败,并且由于这些控件和组合框是在一个面板上。

以下是我使用的代码:

foreach (Control ctrl in this.Controls) 
            { 
                if (ctrl is Label) 
                {
                    MessageBox.Show(((Label)ctrl).Text); 
                } 
          }

4 个答案:

答案 0 :(得分:2)

您必须将this.Controls替换为this.Panel1.Controls或您的面板控件名称。

也可以看看Control.ControlCollection.Find Method 来使用控件名称。

答案 1 :(得分:2)

你必须进行递归。

ctrl本身也有Controls。如果你只是走遍整棵树,你最终会找到所有控件。

答案 2 :(得分:1)

你实际上有点回答了你自己的问题...... 您在this.Control s Panel1.Controls中找不到控件,但{{1}}:)

答案 3 :(得分:0)

你可以检查当前控件(ctrl)是否有控件来循环它们

e.g:

if (ctrl.Controls.Count >0)
{
//do your logic here
}