我有一个带复选框列的DataGridView。然后有一个在 formInitialization 中已禁用的按钮。现在,我仅在选中其中一个复选框时才希望启用它。我已经部分成功了。这是代码。
private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e) {
foreach (DataGridViewRow dgvr in dataGridView2.Rows)
{
if (dgvr.Cells[2].Value != null)
{
if ((bool)(dgvr.Cells[2].Value) == true)
{
button3.Enabled = true;
}
else
{
button3.Enabled = false;
}
}
}
}
但是,它仅在有两个或多个选中的复选框时才起作用,因为第一次触发 cellClick 事件时,它会检查是否选中了任何复选框,而没有选中。因此,该按钮未启用。我该如何解决?
答案 0 :(得分:0)
添加这段代码即可达到我的预期。这段代码可以检查初始状态和最终状态。
private void dataGridView2_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dataGridView2.IsCurrentCellDirty)
{
dataGridView2.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}