我有带复选框的datagridview列。我想检查此列中是否有选定的行。如果不是我想显示msgbox。我可以通过这个来检查列,但是我收到了每个未检查行的多个msgbox。如何更改它只接收一个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,因为它只删除了第一行,当我使用if / else时仍显示msgbox。我需要删除数据,如果没有选中复选框,请执行msgbox。这是我的按钮:
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();
}
答案 0 :(得分:1)
如果找到nullvalue,只需通过中断循环就可以在获得空值后停止循环:
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;
}
}