DataGridView에 CheckBox 컬럼을 추가했습니다. CheckBox 컬럼에 체크여부에 따른 이벤트를 처리하고 합니다.
그림) 데이터 그리드 뷰의 CheckBox 컬럼을 클릭하면 체크된 건수가 표시되는 예
데이터 그리드뷰의 셀을 클릭할 때 발생하는 이벤트는 CellClick, CellContentClick 이벤트가 있습니다.
이 이벤트를 사용해 셀이 클릭되었는지 여부를 확인할 수 있습니다. 하지만 체크값이 변경되는 것과는 상관이 없습니다. CellClick 이벤트는 값이 변경되기 전에 발생하고, CellContentClick은 값이 업데이트된 후에 발생합니다. 하지만 값이 업데이트되었다고 값을 가져올 때 업데이트된 값을 가져오는 것이 아닙니다. 즉, 변경된 값을 데이터그리드뷰에 적용해야 합니다. 그리고 데이터그리드뷰에 값이 변경되면 CellValueChanged 이벤트가 발생합니다.
만약 위 예제처럼 체크된 수를 표기할 때는 위 이벤트를 활요하여 값을 가져옵니다.
Private Sub DataGridView1_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) _
Handles DataGridView1.CellContentClick
' 체크박스 처리(셀 중 0번 인덱스만 처리합니다.)
If (e.ColumnIndex = 0) Then
DataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
GetCheckedListCount()
End If
End Sub
위 코드에서 중요한 것은 CommitEdit 메소드를 호출하는 것입니다. 변경된 값을 데이터그리드뷰에 반영합니다.
' 체크된 리스트를 반환합니다.
Private Sub GetCheckedListCount()
Dim count As Integer = 0
For Each row As DataGridViewRow In Me.DataGridView1.Rows
If (row.Cells(0).Value = True) Then
count = count + 1
End If
Next
Me.labCheckCount.Text = "총 " & count & "건"
End Function
'VB.NET 2008 > VB - 데이터 그리드 뷰' 카테고리의 다른 글
데이터 표시 방법 (0) | 2012.09.23 |
---|---|
메모리 내 데이터의 테이블을 나타내는 DataTable 클래스 (0) | 2012.09.22 |
DataGridView의 컬럼 및 셀 꾸미기 (0) | 2012.06.05 |
DataGridView - 열 정렬 모드 (0) | 2011.04.26 |
DataGridView - 꾸미는 방법 (0) | 2011.04.26 |