2017-06-25 5 views
-6

こんにちは私はすべての答えはこれを短縮するためにsomの助けが必要です感謝しています! 私はいくつかの方法が、ありません成功を見つけるために、TRIDていると私はちょっと多分そう単純なものをnoobishていますが、単純なこれを短縮することはできますか?

のWinFormsアプリケーションで
 if (comboBox11.Text == "") 
     { 
      comboBox1.Enabled = true; 
      comboBox2.Enabled = true; 
      comboBox3.Enabled = true; 
      comboBox4.Enabled = true; 
      comboBox5.Enabled = true; 
      comboBox6.Enabled = true; 
      comboBox7.Enabled = true; 
      comboBox8.Enabled = true; 
      comboBox9.Enabled = true; 
      comboBox10.Enabled = true; 
      comboBox11.Enabled = true; 
      comboBox12.Enabled = true; 
     } 
     else 
     { 
      comboBox1.Enabled = false; 
      comboBox2.Enabled = false; 
      comboBox3.Enabled = true; 
      comboBox4.Enabled = false; 
      comboBox5.Enabled = false; 
      comboBox6.Enabled = false; 
      comboBox7.Enabled = false; 
      comboBox8.Enabled = false; 
      comboBox9.Enabled = false; 
      comboBox10.Enabled = false; 
      comboBox11.Enabled = true; 
      comboBox12.Enabled = false; 
     } 
+3

ヒントそれぞれのコンボを取得するには、このコントロールコンテナの上にループを行うことができます代わりに、12の異なる変数を持つのを、あなたは、配列またはリストを作成することができますか? –

+0

WinFormsを使用していて、これらのコントロールがすべてフォームコントロールコンテナでホストされている場合、有効なプロパティをループで設定することができます – Steve

+0

Jon Skeetのような配列やリストを使用できない場合は、 –

答えて

3

にこれらのコントロールは、すべてのコントロールコンテナ内でホストされているわけではありません。通常、これはフォーム自体であり、あなたは、このように

bool enable = (comboBox11.Text == ""); 
foreach(ComboBox cb in this.Controls.OfType(ComboBox)()) 
    cb.Enabled = enable; 
// These are always enabled. 
comboBox11.Enabled = true; 
comboBox3.Enabled = true; 
関連する問題