DataGrid AVANZADO???

12/04/2005 - 10:11 por Daniel Diez | Informe spam
Hola a todos

Estamos intentando qeu con un doble click en un elemento de un datagrid se
lance algún evnto y nos informe de al fila donde se ha pulsado, pero esto no
parece tan sencillo.

Sabe alguien darnos alguna orientación para encaminar esto???

Gracias a todos


Dani

Preguntas similare

Leer las respuestas

#1 Carlos Durán Urenda
12/04/2005 - 16:19 | Informe spam
Hola Daniel

la verdad es que el datagrid no es nada sencillo,
el evento del doble click sobre un datagrid normal se estaría ejecutando
solo cuando das dobleclick en el area gris fuera de las celdas o bien en el
rowheader, sin embargo al hacerlo sobre una celda no te resultara nada

por ahi encontre un codigo en donde se crea un control heredado del datagrid
y se utiliza como un browser, en donde se utiliza un columnstyle no editable
para impedir que comience la edicion de la celda y ademas se hace un
desplazamiento en el click de modo que sin importar donde se dé el click,
esté actué sobre el rowheader, esto permite hace que el click seleccione
toda la fila y al hacerdobleclick, como se esta desplazando hacia el header,
siempre lo estará validando

Puedes encontrar los ejemplos en la pagina de Willy, especificamente en ...

http://www.willydev.net/DUGdirector...ing.asp?id73&url=http://www.willydev.net/descargas/c...tagrid.zip



los codigos de que te hablo se llaman datagridbrowser_vb.zip y
datagridbrowser-multiselect_vb.zip

tienen algunos problemas, por ejemplo, al dar click sobre una linea
horizontal de la grilla te activa el resize de la fila, debido al
desplazamiento que se esta llevando a cabo, esto lo puedes solucionar
pasandole a dicho offset una posicion equivalente al centro de la fila.

encontraras muchos otros ejemplos utiles de datagrid


Saludos
Carlos Durán



"Daniel Diez" escribió en el mensaje
news:OL$
Hola a todos

Estamos intentando qeu con un doble click en un elemento de un datagrid se
lance algún evnto y nos informe de al fila donde se ha pulsado, pero esto
no parece tan sencillo.

Sabe alguien darnos alguna orientación para encaminar esto???

Gracias a todos


Dani

Respuesta Responder a este mensaje
#2 Tristan
12/04/2005 - 21:28 | Informe spam
Para eso basta con crear un objeto CurrencyManager. Este objeto genera un
evento PositionChanged cada vez que la posición actual de la fuente de datos
cambia.

O sea define algo así:

Private WithEvents CM as CurrencyManager

...
Y al asignar el dataset al datagrid:
CM = Me.BindingContext(tuDataSet, "TuTabla") 'Mejor DirectCast ...


Y ya dispones de un objeto CurrencyManager con el evento PositionChanged y
otros eventos y propiedades útiles.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 Tristan
12/04/2005 - 21:42 | Informe spam
Perdona no me había fijado en que querías responder al doble click y no al
click.

Bueno, para detectar el doble click es lo que te ha dicho Carlos. Un
TableStyle del que obtienes el objeto TextBox que edita la celda, que es el
que produce el evento.

Juan Carlos Badiola
MVP - C#
Juan Carlos Badiola
MVP - C#

Respuesta Responder a este mensaje
#4 Daniel Diez
13/04/2005 - 17:12 | Informe spam
la verdad es que os estoy muy agradecido por vuestras indicaciones. Un mando
un fuerte abrazo o todos los que apoyais este tipo de foros.




"Carlos Durán Urenda" escribió en el mensaje
news:
Hola Daniel

la verdad es que el datagrid no es nada sencillo,
el evento del doble click sobre un datagrid normal se estaría ejecutando
solo cuando das dobleclick en el area gris fuera de las celdas o bien en
el rowheader, sin embargo al hacerlo sobre una celda no te resultara nada

por ahi encontre un codigo en donde se crea un control heredado del
datagrid y se utiliza como un browser, en donde se utiliza un columnstyle
no editable para impedir que comience la edicion de la celda y ademas se
hace un desplazamiento en el click de modo que sin importar donde se dé el
click, esté actué sobre el rowheader, esto permite hace que el click
seleccione toda la fila y al hacerdobleclick, como se esta desplazando
hacia el header, siempre lo estará validando

Puedes encontrar los ejemplos en la pagina de Willy, especificamente en
...

http://www.willydev.net/DUGdirector...ing.asp?id73&url=http://www.willydev.net/descargas/c...tagrid.zip



los codigos de que te hablo se llaman datagridbrowser_vb.zip y
datagridbrowser-multiselect_vb.zip

tienen algunos problemas, por ejemplo, al dar click sobre una linea
horizontal de la grilla te activa el resize de la fila, debido al
desplazamiento que se esta llevando a cabo, esto lo puedes solucionar
pasandole a dicho offset una posicion equivalente al centro de la fila.

encontraras muchos otros ejemplos utiles de datagrid


Saludos
Carlos Durán



"Daniel Diez" escribió en el mensaje
news:OL$
Hola a todos

Estamos intentando qeu con un doble click en un elemento de un datagrid
se lance algún evnto y nos informe de al fila donde se ha pulsado, pero
esto no parece tan sencillo.

Sabe alguien darnos alguna orientación para encaminar esto???

Gracias a todos


Dani





Respuesta Responder a este mensaje
#5 Daniel Diez
13/04/2005 - 17:12 | Informe spam
la verdad es que os estoy muy agradecido por vuestras indicaciones. Un mando
un fuerte abrazo o todos los que apoyais este tipo de foros.


"Tristan" escribió en el mensaje
news:
Perdona no me había fijado en que querías responder al doble click y no al
click.

Bueno, para detectar el doble click es lo que te ha dicho Carlos. Un
TableStyle del que obtienes el objeto TextBox que edita la celda, que es
el que produce el evento.

Juan Carlos Badiola
MVP - C#
Juan Carlos Badiola
MVP - C#





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida