[英]Datagridview won't change checkbox of first row (vb.net)
我有一個datagridview(這里稱為cameraTable)。 datagridview的一列僅是復選框。 我有一個按鈕,單擊該按鈕將選中列中的所有框,也就是全選。 這是代碼:
Private Sub btnSelectAll_Click(sender As Object, e As EventArgs) Handles btnSelectAll.Click
For Each row As DataGridViewRow In cameraTable.Rows
DirectCast(row.Cells("CheckBox"), DataGridViewCheckBoxCell).Value = _
True
Next
End Sub
我遇到的問題是,初始框(即第零行)永遠不會更改為選中狀態。 我嘗試了這些:
DirectCast(cameraTable(0, 0), DataGridViewCheckBoxCell).Value = True ' doesn't work
cameraTable.Rows(0).Cells(0).Value = True ' doesn't work
都不會將復選框更改為選中狀態,但是該列中的其他行不會出現問題。 我什至做過一個msgbox,可以打印出該值,結果是“ True”。 因此,復選框的值已更改,但datagridview中的復選框仍未選中。 有任何想法嗎?
感謝您的所有幫助!
-K
對於當前選定的行/單元,該數據網格將不會獲得INotifyPropertyChanged事件(或將不會處理它們)。 如果您還有其他可編輯的列,請將焦點所在的列移至該列。
如果所有其他方法均失敗,請在設置值之后通過設置數據源= none來重新加載網格,然后返回到原來的狀態。
史蒂夫是對的。 我所做的是,當單擊復選框時,將焦點設置到該行的另一個單元格(我的dgv設置為FullRowSelect):
Private Sub dgv_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv.CellContentClick
If e.ColumnIndex = iCBColIDX Then
dgv.CurrentCell = dgv.Rows(e.RowIndex).Cells("sts")
End If
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.