2014-11-04 38 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 
相關問題