Click y dobleclick en grid

Tengo un grid en un formulario con información de una consulta de sql y quería saber si es posible que al hacer un click en uno de los campos se seleccione toda la fila donde esta ubicado el campo seleccionado. También si presionando dobleclick en una fila se puede cerrar el formulario y retornar a un formulario que llamo a este formulario del grid.

1 respuesta

Respuesta
1
Espero poder ayudarte:
Para que al hacer click en una fila se seleccione toda:
En las propiedades del grid fíjate que estén de esta manera:
HighLight=.t.
HighLightStyle=2
Bueno ahora para lo que decís del doble click
Para esto te conviene crear un método en el formulario, tipo Selecciona
Después, en cada textbox de las columnas, en el evento dblClick pones
Thisform. Selecciona
Fíjate que sea en el textBox que está adentro de la columna y en todas las columnas
En el método selecciona que hiciste podes poner:
Thisform. Release
Yo te sugiero uses el método del formulario para el caso que quieras agregar algo, como un cartel, una confirmación o llenar alguna variable con el valor de retorno.
Bueno, otra cosa que queda bien es que en el evento keypress del grid hagas que el enter sea como el doble click.
Entonces, en el keypress del grid pones:
Lparameter nkeyCode, nShiftAltCtrl
if nKeyCode=13
   Thisform. Selecciona
Endif
Espero haberte podido ayudar y si es así, por favor cerrá la pregunta.
Keystone, Gracias por la ayuda, tengo las siguientes consultas.
Sobre el click, a decir verdad lo tenia así, la observación que tengo es que cuando hago un click en uno de los campos de la fila, ese campo se visualiza como si no estuviera seleccionado, los demás campos en cambio si muestra la selección.
Sobre el dobleclick en una fila del grid, ¿cómo txtbox de cada columna del grid?. He intentado con la segunda opción que mencionas pero no hace caso al método seleccionar que he creado en el formulario, es decir al presionar enter no cierra el formulario.
Espero tus comentarios.
Bueno vamos al primer punto.
Es así: El grid es un objeto contenedor de otros objetos. La estructura básica es así.
GRID
   COLUMN
       TEXTBOX
Cuando vos tocas en una columna del grid, en realidad estas tocando el textbox que contiene el dato. Este textbox funciona igual a que si estuviera fuera del grid (bueno, casi igual, pero igual en muchas propiedades, eventos y métodos)
Lo que pasa es que cuando haces click en una columna el textbox se activa y ahí se ven los colores de la propiedades backColor y selectedBackColor del textbox.
Fíjate una cosa; tocas en el grid y te vas a las propiedades. Abrí la lista donde esta el nombre del grid (arriba de todo) y vas a ver en forma de árbol que dice algo como
Grid1
   Column1
      Text1
A eso me refiero con el evento dblclick de cada text dentro del grid. Ahí es donde tienes que poner thisform. Seleccionar
Para hacerlo paso a paso hace así:
Hace doble click sobre el grid
Va a aparecer la ventana de código
En la lista Object, abrila y busca el primer textbox que esta debajo de grid, column y en procedure busca dblClick y ahí escribí thisform. Seleccionar
Después solo cambia el object al siguiente textbox y así hasta completar tu trabajo
Con respecto al evento keypress que te comente sobre el enter, proba de usar el evento keypress de cada textbox en lugar del grid.
Espero que haya sido de utilidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas