Un saludo.
Juan Carlos Pinto.
<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.
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.