Identificar la parte del DataGrid sobre la que se ha clicado
Artículo por Club Developers · 28 agosto 2006
2108 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.
csharp
//... public class MonDataGrid : DataGrid { //... // propiedad pública que tendrá la parte clicada public DataGrid.HitTestType ClickType { get{ return this.currentClickType;}} private DataGrid.HitTestType currentClickType; // sobrecarga de MyBase.OnMouseDown protected override void OnMouseDown(MouseEventArgs e) { this.currentClickType = this.HitTest(e.X,e.Y).Type; base.OnMouseDown(e); } }
Veamos cómo usar esta clase:
csharp
using System.Text; //... private void DataGrid1MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { MonDataGrid dg = (MonDataGrid)sender; sb.Append(dg.ClickType.ToString()); dg.CaptionText = sb.ToString(); }