2012-06-05 4 views
2

사용자가 yes로 대답하면 DataGridview 행의 확인란을 선택 취소하고 행이 삭제되면 사용자가 아니오로 응답하면 확인란을 다시 선택해야합니다. 그러나 내가 실제로 datagridview에 아무 데나 클릭하지 않으면 확인하지 않습니다. dgv를 업데이트하기위한 아이디어가 있습니까? 대신 Invalidate()DataGridView에서 프로그래밍 방식으로 CheckBox 셀 전환

Private Sub DataGridView2_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellValueChanged 

    If e.RowIndex <> -1 Then 
    Dim row As DataGridViewRow = DataGridView2.Rows(e.RowIndex) 
    If e.ColumnIndex = 0 Then 
     If row.Cells(0).Value = False Then 
     If MessageBox.Show("Delete view from database.", "Delete", MessageBoxButtons.YesNo) = DialogResult.Yes Then 
      DataGridView2.Rows.RemoveAt(e.RowIndex) 
     Else 
      row.Cells(0).Value = True 
      DataGridView2.Invalidate() 
     End If 
     End If 
    End If 
    End If 
End Sub 

Private Sub DataGridView2_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) Handles DataGridView2.CurrentCellDirtyStateChanged 
    If DataGridView2.IsCurrentCellDirty Then 
    DataGridView2.CommitEdit(DataGridViewDataErrorContexts.Commit) 
    End If 
End Sub 

답변

5

, 다음과 같이 RefreshEdit()를 호출하려고 :

Else 
    row.Cells(0).Value = True 
    DataGridView2.RefreshEdit() 
End If 
관련 문제