我无法计算 DataGridView 中选中的复选框。我想在选中复选框期间计算选中的复选框并将选中的项目数存储在标签中。我尝试了以下代码,但没有给出正确的计数:
int num = 0;
private void dgvLoadData_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
bool isChecked = Convert.ToBoolean(dgvLoadData.Rows[dgvLoadData.CurrentCell.RowIndex].Cells[0].Value.ToString());
if (isChecked)
{
num+=1;
}
else
{
num-=1;
}
labelSelectedSum.Text = "Selected Items: " + num;
}
最佳答案
在表上应用 CurrentCellDirtyStateChanged
事件。调用 gridview.CommitEdit
更新复选框列的值。执行以下操作:
private void dgvLoadData_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
if (dgvLoadData.IsCurrentCellDirty)
{
dgvLoadData.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
这将调用 _CellValueChanged
事件。不会对 CellValueChanged
事件中的代码进行任何更改:
int num = 0;
private void dgvLoadData_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0)
return;
bool isChecked = (bool)dgvItemsToShip.Rows[e.RowIndex].Cells[0].Value;
if (isChecked)
{
num+=1;
}
else
{
num-=1;
}
labelSelectedSum.Text = "Selected Items: " + num;
}
关于c# - 如何在 C# 中更改复选框值时计算 DataGridView 中选中的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483072/