Evento para atrapar el "Sort" en un System.Windows.Forms.DataGrid

18/10/2006 - 17:16 por Pablo Fébolo | Informe spam
Ambito: NET 2003 - VB.NET - WinApp

En una aplicacióin windows coloque un DataGrid al cual configure
adecuadamente y coloque la propiedad AllowSorting = True

Ahora lo que me gustaría es saber cuando el usuario hace un
click sobre el header de la columna para ordenarla.

En otras palabras ¿hay un evento que se dispare cuando
en un DataGrid se ordena una columna?, ¿donde esta que
no lo encuentro?.

Gracias.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion [MVP]
18/10/2006 - 23:04 | Informe spam
"Pablo Fébolo" wrote in message
news:
Ambito: NET 2003 - VB.NET - WinApp

En una aplicacióin windows coloque un DataGrid al cual configure
adecuadamente y coloque la propiedad AllowSorting = True

Ahora lo que me gustaría es saber cuando el usuario hace un
click sobre el header de la columna para ordenarla.

En otras palabras ¿hay un evento que se dispare cuando
en un DataGrid se ordena una columna?, ¿donde esta que
no lo encuentro?.



Podrías interceptar el "Click" y ver si se ha hecho sobre la cabecera, en
cuyo caso deduces que se ha ordenado la columna:

private void dataGrid1_Click(object sender, EventArgs e)
{
System.Drawing.Point pt = dataGrid1.PointToClient(Cursor.Position);
DataGrid.HitTestInfo hti = dataGrid1.HitTest(pt);
if (hti.Type==DataGrid.HitTestType.ColumnHeader)
{
MessageBox.Show("Ordenada la columna "+hti.Column.ToString());
}
}
Respuesta Responder a este mensaje
#2 Pablo Fébolo
06/11/2006 - 16:35 | Informe spam
Gracias Alberto por tu respuesta, por mi lado seguí buscando y encontré el
dichoso evento. El detalle (como para otros aspectos) pasa por el
DefaultView, en este caso un poco mas difícil de ver, se trata del evento
ListChanged del objeto (tipo DataView).

Al final puse una linea tipo (Siendo dt un DataTable):

AddHandler dt.DefaultView.ListChanged, AddressOf DefaultView_ListChanged

Cree el manejador:

Private Sub DefaultView_ListChanged(ByVal sender As System.Object, ByVal e
As System.ComponentModel.ListChangedEventArgs)
.
.
.
End Sub


y todo funcionó.

Saludos y nuevamente muchas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida