2014-03-25 57 views
0

我已經能夠使用checkAll(複選框)檢查列表中的所有框,但似乎無法取消選中它們。檢查並取消選中複選框列表

在foreach中,當我放入「industry.Checked = true」時,它檢查它們都很好。我想也可以通過取消選中checkAll框來取消全部選中。

private void checkAll_CheckedChanged(object sender, EventArgs e) 
    { 
     List<CheckBox> industries = new List<CheckBox>(); 
     industries.Add(checkBasicIndustries); 
     industries.Add(checkCapitalGoods); 
     industries.Add(checkConsumerDurables); 
     industries.Add(checkConsumerNonDur); 
     industries.Add(checkConsumerServices); 
     industries.Add(checkEnergy); 
     industries.Add(checkFinance); 
     industries.Add(checkHealthcare); 
     industries.Add(checkMiscellaneous); 
     industries.Add(checkPublicUtilities); 
     industries.Add(checkTechnology); 
     industries.Add(checkTransportation); 

     foreach (CheckBox industry in industries) 
     { 
      if (industry.Checked = false) 
      { 
       industry.Checked = true; 
      } 

      else { industry.Checked = false; } 

     } 
    } 
+0

我編輯了喲你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

Windows窗體或Web窗體? – Win

回答

2

錯字在

if (industry.Checked = false) // Assignment operator 

=分配值falseChecked屬性。
因此,您始終將所有CheckBox設置爲false。

應該

if (industry.Checked == false) // Comparison operator 

或只是

if (!industry.Checked) 

但是,所有的更好是(通過Matthew Mcveigh以下建議)

foreach (CheckBox industry in industries) 
    industry.Checked = !industry.Checked; 

減少你的代碼一行

+2

或者只是'industry.Checked =!industry.Checked;'並且去掉if if –

+0

哦!它現在完美。謝謝!我是新來的:) – BigBlackBunny

相關問題