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 に答える