未分類

【C# CheckBox】状態に応じてグループボックス内のテキストボックスの状態を変更する

準備

(なし)

デザイン

1. フォーム (Form1) にグループボックス (groupBox1) を配置します。
2. グループボックス (groupBox1) の左上にチェックボックス (checkBox1) を配置します。
3. グループボックス (groupBox1) 内にテキストボックスを数個配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void Form1_Load(object sender, EventArgs e)
{
  checkBox1.Checked = true;
}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
  foreach (Control item in groupBox1.Controls)
  {
    if (item is TextBox)
    {
      item.Enabled = checkBox1.Checked;
    }
  }
}

解説

チェックボックスをチェックしたり、チェックを外したりするたびにグループボックス内のテキストボックスの状態が変わります。

ここで注意することは、グループボックスの左上にチェックボックスを配置した場合でも、そのチェックボックスはグループボックスに含まれるということです。そのため、グループボックスには、テキストボックスしか配置していない場合でも、必ず TextBox であるかを判断して処理する必要があります。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類