2013-12-08 13 views
9

私はプログラミングとC#言語の新機能です。私は立ち往生して、助けてください。 「dataGridViewのcheckBoxがチェックされているかどうかをチェックする方法は?

演算子「==」はタイプのオペランドに適用することはできません「オブジェクト」と:

private void button2_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (row.Cells[1].Value == true) 
     { 
       // what I want to do 
     } 
    } 
} 

だから、私は次のエラーを取得する:だから私は(#のVisual Studio 2012 C)このコードを書かれていますブール '。

答えて

4

値はオブジェクト型を返し、ブール値と比較することはできません。あなたは

if ((bool)row.Cells[1].Value == true) 
{ 
    // what I want to do 
} 
+0

何か.Cells [1] number? –

27

あなたはDataGridViewのチェックボックスがチェックされているかどうかを確認するためにConvert.ToBoolean()を使用する必要がありますがBOOLする値をキャストすることができます。ここでの回答のすべてが、エラーを起こしやすい

private void button2_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     if (Convert.ToBoolean(row.Cells[1].Value)) 
     { 
       // what you want to do 
     } 
    } 
} 
+0

これは受け入れられた答えよりはるかに優れた方法です... 'Convert.ToBoolean()'は 'null'の値チェックを必要とせず、コードを合理化します。 –

4

したがって、この問題に遭遇人々のために物事をクリアする、

OPが望んでいるものを達成するための最良の方法はです次のコード:

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    DataGridViewCheckBoxCell cell = row.Cells[0] as DataGridViewCheckBoxCell; 

    //We don't want a null exception! 
    if (cell.Value != null) 
    { 
     if (cell.Value == cell.TrueValue) 
     { 
      //It's checked! 
     } 
    }    
} 
+1

私のために働いた.. –

0

若干の修正が

を動作するはずです
0
if (Convert.ToBoolean(row.Cells[1].EditedFormattedValue)) 
{ 
    //Is Checked 
} 
+1

これは質問への答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](レビュー/低品質の投稿/ 16750699) –

+0

**レビューキューから:**あなたの答えをさらに詳しく説明してください。コードのみの回答は理解しにくいです。あなたの投稿にさらに情報を追加することができれば、これはAskerと将来の読者に役立ちます。 [コードベースの回答を完全に説明する](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)も参照してください。 –

+0

[回答方法​​](https://stackoverflow.com/help/how-to-answer)をご覧になり、回答を更新して詳細をご確認ください。具体的には、これがどのように問題を解決するかを説明した場合に役立ちます – Ortund

関連する問題