2014-11-04 118 views
0

我将SQL结果返回到DataGridView中,并且遇到问题。我在表单上有一个选项,只显示选中的值,但无法正常工作。这里是我的代码:只显示在DataGridView中选中的框

For x As Integer = dgvAutogrow.Rows.Count - 1 To dgvAutogrow.Rows.Count 
     If dgvAutogrow.Rows(x).Cells("checked").Value = False Then 
      dgvAutogrow.Rows.Remove(dgvAutogrow.Rows(x)) 
     End If 
    Next 

这是我的DataGridView的一部分看起来像。我想要发生的事件只显示复选框已选中的值。

.netError

当我调试,我得到以下错误:

.netError

上改变什么有什么建议?

回答

2

你要投的小区DataGridViewCheckBoxCell然后测试这样的值:

For x As Integer = dgvAutogrow.Rows.Count - 1 To 0 Step -1  
    Dim cel as DataGridViewCheckBoxCell 
    cel = CType(dgvAutogrow.Rows(x).Cells("YourColumnName"), DataGridViewCheckBoxCell) 
    If cel.Value = False Then 
     dgvAutogrow.Rows.Remove(dgvAutogrow.Rows(x)) 
    End If 
Next 

而且,你有ArgumentException,因为您指定的列不存在,您需要更改该列。

+0

为什么downvote?这个解决方案适合这个问题 因为我不能添加评论给其他答案,请将'.Cells(“checked”)'改为'.Cells(“IsPercentGrowth”)'或发生异常。 – 2014-11-04 15:33:08

+0

你的x从哪里来?在编辑它之前,它也不起作用。此外,为什么他需要更改单元格名称,它应该是他正在使用的单元名称......为什么他需要将其更改为IsPercentGrowth? – Codexer 2014-11-04 15:39:16

+0

不仅是一个问题,有一个问题,因为他的循环错误,删除行,你也没有解决这个问题......所以你的答案是不适合手头的问题... – Codexer 2014-11-04 15:42:54

0

代码被尝试和测试。

你可以试试这个。我们需要转换细胞作为DataGridViewCheckBoxCell和改变你的循环......

For x As Integer = dgvAutogrow.Rows.Count - 1 To 0 Step -1 
     If CType(dgvAutogrow.Rows(x).Cells("checked"), DataGridViewCheckBoxCell).Value = False Then 
      dgvAutogrow.Rows.Remove(dgvAutogrow.Rows(x)) 
     End If 
    Next 
相关问题