2

我目前正在使用文本框上的可见属性。下面我复制粘贴了我的代码片段。我的表单中有几个文本框。尝试编写它会变得非常乏味,就像我在下面为所有文本框所做的那样。有没有办法将我的代码压缩到几行以使文本框可见?

    public void makeVisible()
    {
        textBox1.Visible = true;
        textBox2.Visible = true;
        textBox3.Visible = true;
        textBox4.Visible = true;
        //etc.

    }
4

3 回答 3

2

试试这个:

foreach(Control c in Controls)
{
 TextBox tb = c as TextBox;
 if (tb !=null) tb.Visible = false; //or true, whatever.
}

对于有限的文本框:

int count = 0;  
int txtBoxVisible = 4;  
foreach(Control c in Controls)
{
    if(count <= txtBoxVisible)
    {
        TextBox tb = c as TextBox;
        if (tb !=null) tb.Visible = false; //or true, whatever.
        count++;
    }
}

您可以txtBoxVisible根据自己的需要进行设置。

于 2013-02-17T07:03:01.267 回答
1

将文本框放入数组中并循环遍历数组或

将文本框放在面板、网格、组中……并更改该容器的可见性。

于 2013-02-17T07:04:08.253 回答
1

使用类似于以下内容的内容:

foreach (TextBox textBox in container.Controls.Cast<Control>().OfType<TextBox>())
{
    textBox.Visible = value;
}

请参阅以下内容:

LINQ(语言集成查询)

Enumerable.Cast 方法

Enumerable.OfType 方法

于 2013-02-17T07:08:08.580 回答