2016-12-18 7 views
-2

私はチェックボックス付きのdatagridview列を持っています。この列に選択された行があるかどうか確認したい私はmsgboxを表示したくない場合。私はこれで列をチェックできますが、未チェックの行ごとに複数のmsgboxを受け取ります。 1つのmsgboxだけを受け取るように変更するには?このコードを変更して1つのmsgboxだけを受け取る方法は?

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

    //We don't want a null exception! 
    if (cell.Value == null) 
    { 
     MessageBox.Show("Nie zaznaczono pola!"); 
    } 
} 

編集:

が答えてくれてありがとう。私は自分の問題が思った以上に複雑になっていることに気付きました。私のボタンは、選択された行をDataGridから削除する必要があります。問題はforeachであり、最初の行だけを削除し、もし/ elseを使うとmsgboxが表示されるからです。データを削除する必要があり、チェックボックスが選択されていない場合はmsgboxを実行します。あなたが休憩するだけでループをnull値を得た後NULLVALUEが見つかった場合は、あなたのループを停止することができます

private void button2_Click(object sender, EventArgs e) 
{ 
    con.Open(); 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 
     object cell = row.Cells["cell_del"].Value; 
     if (cell == "yes") 
     { 

      SqlCommand cmd = new SqlCommand("Delete From Rok2016 where ID ='" + row.Cells[4].Value.ToString() + "'", con); 
      cmd.ExecuteNonQuery(); 

      wczytywanie_tabeli(); 
     } 

     else 
     {        
      MessageBox.Show("Nie zaznaczono pola!"); 
      break; 
     } 
    } 




    con.Close(); 
} 

答えて

1

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

    //We don't want a null exception! 
    if (cell.Value == null) 
    { 
     MessageBox.Show("Nie zaznaczono pola!"); 
     break; 
    } 
} 
をここに私のボタンであり、
関連する問題