Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Como asignar imagen a una columna de botones en un datagridview?

1,642 views
Skip to first unread message

jcp...@dpstudio.es

unread,
Jul 21, 2008, 12:49:46 PM7/21/08
to
Hola a todos!
Hoy es una preguntita cortita...
Tengo en un form un datagridview, con una columna del tipo boutton.
Como puedo asignarle una imagen diferente a cada uno de los botones? o
a uno concreto? Y como es el evento de recibir un click en estos
botones?

Un saludo.

Juan Carlos Pinto.

SoftJaén

unread,
Jul 22, 2008, 2:59:29 AM7/22/08
to
[Segundo intento de publicación]

<jcp...@dpstudio.es> escribió:> Hola a todos!

> Tengo en un form un datagridview, con una columna del tipo boutton.
> Como puedo asignarle una imagen diferente a cada uno de los botones? o
> a uno concreto?

Hola, Juan Carlos:

Aunque parezca un control Button, lo que en realidad contiene una columna
tipo DataGridViewButtonColumn es un objeto DataGridViewButtonCell, que poco
tiene que ver con el clásico control Button del marco de trabajo de .NET,
por tanto, ignoro como puedes asignarle una imagen al supuesto "control
Button". Como mucho, podrás indicarle algunos colores para las propiedades
BackColor y SelectionBackColor del objeto DataGridViewCellStyle subyacente,
como muestra el siguiente ejemplo, el cual añadirá una nueva columna tipo
DataGridViewButtonColumn a un control DataGridView:

Dim btn As New DataGridViewButtonColumn

With btn
.HeaderText = "Column1"
.FlatStyle = FlatStyle.Standard
.CellTemplate.Style.BackColor = Color.Red
.CellTemplate.Style.SelectionBackColor = Color.Yellow
.DisplayIndex = 0
End With

DataGridView1.Columns.Add(btn)

> Y como es el evento de recibir un click en estos botones?

Pues el mismo que utilizarías para detectar cualquier clic efecutado en una
celda cualquiera del control DataGridView, el evento «CellClick»:

Private Sub DataGridView1_CellClick( ... )

' Obtenemos la celda activa.
'
Dim cell As DataGridViewCell = DataGridView1.CurrentCell

' Comprobamos el tipo de celda.
'
If TypeOf cell Is DataGridViewButtonCell Then

' Referenciamos el objeto DataGridViewButtonCell.
'
Dim btn As DataGridViewButtonCell = DirectCast(cell,
DataGridViewButtonCell)

MessageBox.Show("Indice de la columna: " &
btn.ColumnIndex.ToString)

Else

' Se trata de otro tipo de celdas.
'
' Mostramos el valor actual existente en la celda.
'
MessageBox.Show(cell.Value.ToString)

End If

End Sub

Un saludo

--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

jcp...@dpstudio.es

unread,
Jul 22, 2008, 10:42:21 AM7/22/08
to
On 22 jul, 08:59, SoftJaén <grupo_notic...@softjaen.es> wrote:
> [Segundo intento de publicación]
>
> <jcpi...@dpstudio.es> escribió:> Hola a todos!

gracias Enrique.

Como no puedo agragarle imagenes, he decidido que sea una columna de
imagenes y que el usuario las selecciones haciendo doble clik en
ella.

Muchas gracias por la explicación y por tu tiempo...
Juan Carlos Pinto.

0 new messages