【问题标题】:For Loop to count checked items on datagrid not counting correctlyFor Loop 计算数据网格上的检查项目计数不正确
【发布时间】:2014-02-14 13:44:08
【问题描述】:

我制定了以下循环来计算和显示我的数据网格上检查了多少行。但是,循环忽略了我检查的第一行。在我检查第二行之前,计数不会从 1 开始。当我取消选中时,也会发生同样的情况,值相差 1。

Dim chkRowCount As Integer = 0
For Each row As DataGridViewRow In dgvAssignGridView.Rows 
    If row.Cells(6).Value = True Then               
        chkRowCount += 1            
    Else                
        chkRowCount += 0            
    End If        
Next       
lblChkCount.Text = chkRowCount.ToString    

我尝试将变量设置为 1 而不是 0,但这会产生一些不需要的结果。

【问题讨论】:

  • 除了chkRowCount += 0 行非常不必要之外,我认为逻辑没有任何问题。所以...你确定dgvAssignGridView 是正确的网格吗?你确定Cells(6) 是正确的列吗?你确定lblChkCount 是正确的标签吗?
  • If row.Cells(6)...上设置断点,看看值是不是你想的那样。

标签: vb.net datagrid


【解决方案1】:

我猜您在 CellContentClick 中有此代码。问题是该例程中的代码在复选框的值实际更改之前触发。但是,您基本上可以通过将以下行放在代码之前来强制 DataGridView 首先验证自身。

dgvAssignGridView.EndEdit()

这会在您进行计数之前强制单元格单击进行注册。

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 2013-10-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2014-05-28
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多