0

私は10 textBoxes1つのフォームを持っており、checkBox.

このチェックボックスで、テキストボックスが有効かどうかを制御したいと思います。私はそれができることを知っていますが、それを短くtextBox1.Enabled = true; textBox2.Enabled = true; etcする方法はありますか?one line

4

5 に答える 5

1

次のように、コードの 1 行でこれを行うことができます。

グループ ボックスまたはパネル内にすべてのテキスト ボックスを配置します。

Pnl.Enabled = Chk.Checked
于 2013-05-14T14:05:38.107 に答える
0
var cntrlCollections = GetAll(this,typeof(TextBox));

foreach (Control ctrl in cntrlCollections)
{
  ctrl.Enabled = checkBox.Checked;
}   
于 2013-05-14T14:07:19.253 に答える
0
private void ToggleAllTextBoxControls()
{
    foreach (Control c in this.Controls)
        if (c Is TextBox)
             c.Enabled = chkEnable.Checked;
}  

これは、フォーム上のすべてのコントロールを反復処理し、それが TextBox であり、チェックボックスがオンになっている場合に有効にします。

于 2013-05-14T14:05:29.833 に答える
0

より多くのコード ゴルフ (技術的には1行です): TextBoxes がフォームに直接含まれていると仮定します。

    public Form1()
    {
        InitializeComponent();
        checkBox1.Checked = true;
        checkBox1.CheckedChanged += (sender, e) => { foreach (TextBox tb in this.Controls.OfType<TextBox>()) { tb.Enabled = ((CheckBox)sender).Checked; } };
    }
于 2013-05-14T14:32:14.977 に答える