DataGrid 클래스의 HitTest 메소드에 의해, 지정된 좌표 위치의 정보(셀, 헤더, 경계선, 배경 등)를 취득할 수 있습니다.
다음의 예에서는 DataGrid1(DataGrid 오브젝트) 에서 마우스가 클릭되었을때, 이벤트를 제어하여, 위치정보를 표시하고 있습니다.
'마우스 클릭이벤트
Private Sub DataGrid1_MouseDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles DataGrid1.MouseDown
Dim grid As DataGrid = CType(sender, DataGrid)
'클릭된 지점의 좌표정보를 취득한다.
Dim hti As System.Windows.Forms.DataGrid.HitTestInfo
hti = grid.HitTest(e.X, e.Y)
'클릭된 장소정보를 취득
Select Case hti.Type
Case System.Windows.Forms.DataGrid.HitTestType.None
Console.WriteLine("배경이 클릭되었습니다.")
Case System.Windows.Forms.DataGrid.HitTestType.Cell
Console.WriteLine("행{0}열{1}의 셀이 클릭되었습니다.", _
hti.Row, hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader
Console.WriteLine("열헤더'{0}'이 클릭되었습니다.", _
hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.RowHeader
Console.WriteLine("행헤더'{0}'이 클릭되었습니다.", hti.Row)
Case System.Windows.Forms.DataGrid.HitTestType.ColumnResize
Console.WriteLine("열'{0}'의 경계선이 클릭되었습니다.", _
hti.Column)
Case System.Windows.Forms.DataGrid.HitTestType.RowResize
Console.WriteLine("행'{0}'의 경계선이 클릭되었습니다.", hti.Row)
Case System.Windows.Forms.DataGrid.HitTestType.Caption
Console.WriteLine("캡션이 클릭되었습니다.")
Case System.Windows.Forms.DataGrid.HitTestType.ParentRows
Console.WriteLine("부모행이 클릭되었습니다.")
End Select
End Sub
현재의 마우스 포인터 위치로부터 DataGrid의 정보를 취득하는 방법은 아래를 참고하세요.
'마우스 포인터의 화면 좌표를 클라이언트 좌표에 변환
Dim p As Point = DataGrid1.PointToClient(Cursor.Position)
'좌표 위치의 정보를 취득
Dim hti As System.Windows.Forms.DataGrid.HitTestInfohti = DataGrid1.HitTest(p)
'결과를 표시
Console.WriteLine(hti.ToString())
'VB.NET' 카테고리의 다른 글
[TIPS] 타이틀바가 없는폼을 이동시키는 방법 (0) | 2012.10.22 |
---|---|
[TIPS] 컨트롤을 실행시에 작성하는 방법, 퍼포먼스 향상 (0) | 2012.10.22 |
[TIPS] DataGrid의 셀에 이미지를 표시하는 방법 (0) | 2012.10.22 |
[TIPS] DataGrid를 스크롤 시켰을 때, 다른 DataGrid를 동시에 스크롤 시키는 방법 (0) | 2012.10.22 |
[TIPS] DataGridView의 행을 유저가 삭제할 수 없게 하는 방법 (0) | 2012.10.22 |