Identificar la parte del DataGrid sobre la que se ha clicado
Artículo por Club Developers · 11 mayo 2006
2056 vistas
La clase DataGrid.HitTestInfo nos permite determinar la parte de un control DataGrid sobre la cual ha clicado un usuario. Tendremos que:
Implementaremos una clase MiDataGrid derivada de DataGrid capaz de dar la parte clicada.
Veamos cómo usar esta clase:
- Determinar las coordenadas del clic mediante el método HitTest
- Usar la propiedad HitTestInfo.Type para recuperar un valor de la enumeración DataGrid.HitTestType
Implementaremos una clase MiDataGrid derivada de DataGrid capaz de dar la parte clicada.
vbnet
'... Public Class MiDataGrid Inherits DataGrid ' ... ' propiedad pública que tendrá la parte clicada Public ReadOnly Property ClickType() As DataGrid.HitTestType Get Return Me.currentClickType End Get End Property Private currentClickType As DataGrid.HitTestType ' sobrecarga de MyBase.OnMouseDown Protected Overloads Overrides Sub OnMouseDown(ByVal e As MouseEventArgs) Me.currentClickType = Me.HitTest(e.X, e.Y).Type MyBase.OnMouseDown(e) End Sub End Class
Veamos cómo usar esta clase:
vbnet
Imports System.Text Imports System.Windows.Forms ' ... Private Sub DataGrid1MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Dim dg As MiDataGrid = CType(sender, MiDataGrid) Dim sb As StringBuilder = New StringBuilder("La parte clicada es: ") sb.Append(dg.ClickType.ToString) dg.CaptionText = sb.ToString() End Sub