Meter un checkbox en una columna de un msflexgrid

03/07/2003 - 14:09 por tonecho | Informe spam
Estoy intentando meter en una columna de un msflexgrid un textbox que marque
y desmarque el usuario para que pueda seleccionar las filas del msflexgrid
que desee.
He probado metiendo un icono en cada celda y que este cambie si el usuario
pincha encima pero no me funciona.
Agradecería cualquier sugerencia.
Muchas Gracias.
 

Leer las respuestas

#1 Oscar Perez
03/07/2003 - 18:51 | Informe spam
Hola,

Yo lo he hecho en varias ocasiones. Tengo dos controles image en el
formulario, no visibles, uno con la imagen de un chk marcado y otro
desmarcado, luego dejo una columna del grid para mostrar la imagen cuando se
haga doble click (e irla alternando) y otra, que no es necesaria pero hace
el trabajo más cómodo, para poner el valor del chk (0: desmarcado, 1:
marcado). Lo único que hay que hacer es situarte en la columna en que deseas
añadir la imagen y con la propiedad CellPicture del grid le asignas la
propiedad Picture del control image (el marcado o desmarcado, dependiendo de
cuál esté mostrado en el momento del doble click)

Lo de la segunda columna con el 1 ó el 0, la tengo porque luego para saber
qué filas están seleccionadas, si solo está la imagen, tendría que ir
situándome en cada fila/columna que contiene la imagen y comprobar si es que
tiene el chk marcado o la que lo tiene desmarcado. Así solo compruebo el
valor de esta segunda columna (1 ó 0) con TextMatrix y voy más rápido y
cómodo.

Te adjunto un ejemplo, para que te quede más claro...

-Al llenar el grid:
gridLineas.Col = 7
gridLineas.CellPictureAlignment = flexAlignCenterCenter
Set gridLineas.CellPicture = imgSeleccionado.Picture

-En el doble click:
If gridLineas.MouseCol = 7 Then
gridLineas.Col = 7
Select Case gridLineas.TextMatrix(gridLineas.Row, 8)
Case 0 'deseleccionado
gridLineas.TextMatrix(gridLineas.Row, 8) = 1
Set gridLineas.CellPicture = imgSeleccionado.Picture
Case 1 'seleccionado
gridLineas.TextMatrix(gridLineas.Row, 8) = 0
Set gridLineas.CellPicture = imgDeseleccionado.Picture
End Select
Else...

-Para saber qué filas están seleccionadas con el chk bastaría con mirar si
el valor de la columna 8 es 1 ó 0, por ejemplo

For i = 1 To gridLineas.Rows - 1
If gridLineas.TextMatrix(i, 8) = 1 Then 'seleccionada
Else 'deseleecionada
End If
Next i

Espero que te sirva de algo, saludos

"tonecho" escribió en el mensaje
news:
Estoy intentando meter en una columna de un msflexgrid un textbox que


marque
y desmarque el usuario para que pueda seleccionar las filas del msflexgrid
que desee.
He probado metiendo un icono en cada celda y que este cambie si el usuario
pincha encima pero no me funciona.
Agradecería cualquier sugerencia.
Muchas Gracias.



Preguntas similares