c# - 如何在 C# 中更改复选框值时计算 DataGridView 中选中的复选框?

标签 c# checkbox datagridview

我无法计算 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/

相关文章:

c# - 在多核机器上绘图

单击父级时的 jQuery 切换复选框

Javascript 选择页面上除第一个复选框以外的所有复选框?

c# - DataGridView 在代码中设置行高并禁用手动调整大小

c# - 绑定(bind)到 BindingList 的 DataGridView 在值更改时不刷新

data-binding - 将组合框列数据绑定(bind)到每行的数据 GridView (不是整个列)

c# - 未引用库时 Visual Studio 选择了错误的构造函数?

c# - asp.net mvc中的两层依赖注入(inject)

c# - 根据另一个列表确定一个列表的索引,反之亦然,欢迎使用 C#/VB.NET 或 JavaScript 解决方案

php - 数据库中每行的复选框值添加不正确