我的应用程序中有一个Winforms DataGridView。
我有两个复选框列以及数据库中的其他5列。这两个复选框列添加了DataGridViewCheckBoxColumn。
当用户点击第二个复选框时,如果没有为该行选中第一个复选框,我需要向用户显示一条消息。
我该如何解决这个问题? 我尝试过这个,但是单元格值是空的。 我做错了什么?
private void dgTest_CellClick(System.Object sender, DataGridViewCellEventArgs e)
{
DataGridViewCheckBoxCell officialCbCell = row.Cells[1] as DataGridViewCheckBoxCell;
DataGridViewCheckBoxCell includeCbCell = row.Cells[0] as DataGridViewCheckBoxCell;
if (officialCbCell != null)
{
if (officialCbCell.Value != null && (bool)officialCbCell.Value == true)
{
if (includeCbCell != null && (bool)includeCbCell.Value == false)
{
MessageBox.Show("INVALID");
}
}
}
}
感谢。
答案 0 :(得分:7)
您可以尝试使用网格的 CellValueChanged 事件
void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
bool isChecked = (Boolean) dataGridView1[0, e.RowIndex].FormattedValue;
if (isChecked)
dataGridView1[1, e.RowIndex].Value = true;
}
}
如果选中,则可以将其他列设置为已选中或任何其他验证
答案 1 :(得分:1)
CellContentClick
事件和cell.EditingCellFormattedValue
属性也很有用。