2017-08-29 15 views
0

チェックボックスをオンにするとすべてチェックボックスがオンになり、チェックボックスをオフにするとチェックボックスがオフになります。 :チェックボックスをオフにするとチェックボックスをすべてオフにするチェックボックスをオフにするチェックボックスをオフにする

private void checkBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    if (checkBox1.Checked == false) 
     checkBox9.Checked = false; 
} 

が、私はすべてのチェックボックスをオンにしたとき、それはすべてだけでなく、すべてのチェックボックス

+0

のチェックを外したときに、 'checkBox9'は、チェックボックス「すべてを選択」されている場合は、すべてのチェックボックスをunchceckとき、これは、フォーム上のすべてのチェックボックスをチェックしますイベントハンドラを「チェック済み」に戻すか、「間違っている」チェックボックスをチェックします。これは、コントロールに「deafult」という名前を使用すると珍しいことではありません – Fabio

答えて

1

1を選択し、私がチェックしたいすべてのチェックボックスを削除する - あなたのプロジェクトのタイマーを追加します。 2 - タイマーを開始し、 "Form Load"イベントを開始します。 3 - タイマーティックイベントを作成します。

、4-書き込み、このコード:

checkBox1.Checked != checkBox2.Checked 
checkBox2.Checked != checkBox1.Checked 
0

あなたの質問は、それはおそらくあなたの問題を解決するため、それほど明らかではないが:これを行うの

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
    { 
     if (!CheckBox1.Checked) 
     { 
      if (CheckBox2.Checked) 
      { 
       CheckBox2.Checked = false; 

      } 
     } 
} 
0

クリーンな方法は、すべてのチェックボックスを反復することです。あなたのコードは動作するはずです、あなたは他のを持っていない限り - あなたは1を確認し、また、あなたが1

// Register the checked changed event and point all to the same event handler 
checkBox1.CheckedChanged += CheckBox_CheckedChanged; 
checkBox2.CheckedChanged += CheckBox_CheckedChanged; 
checkBox3.CheckedChanged += CheckBox_CheckedChanged; 

private void CheckBox_CheckedChanged(object sender, EventArgs e) 
{ 
    if (sender is CheckBox == false) return; 

    var currentCheckBox = (CheckBox) sender; 

    foreach (var checkBox in this.Controls.OfType<CheckBox>().Where(a => a != currentCheckBox)) 
    { 
     checkBox.Checked = currentCheckBox.Checked; 
    } 
} 
関連する問題