En el siguiente ejemplo vamos a ver cómo podemos abrir una ventana después de pulsar un botón en un DataGridView
.
Supongamos que tenemos un formulario llamado Form1
, que contiene un DataGridView
llamado DataGridView1
. Dicho DataGridView
tiene una columna de tipo DataGridViewButtonColumn
. En el ejemplo, cuando se pulse sobre un botón de la columna, se abrirá una ventana nueva, donde indicaremos el número de la fila, en la que pulsamos el botón.
Para mostrar el número de la fila en el segundo formulario, lo instanciaremos pasándole a través del constructor un parámetro de tipo Integer
con el índice de la fila. Posteriormente (en el método New
del segundo formulario), mostraremos en un control de tipo Label
, el contenido de la variable pasada por el constructor.
Veámos el código de cada uno de los dos formularios:
Form1.vb:
Public Class Form1
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
If e.ColumnIndex = 1 Then
'Se ha pulsado sobre un botón
Dim formulario As New Form2(e.RowIndex)
formulario.ShowDialog()
End If
End Sub
End Class
Form2.vb:
Public Class Form2
Dim boton_pulsado As Integer
Public Sub New(ByVal boton_pulsado As Integer)
' Llamada necesaria para el Diseñador de Windows Forms.
InitializeComponent()
' Agregue cualquier inicialización después de la llamada a InitializeComponent().
Me.boton_pulsado = boton_pulsado
Me.Label1.Text = "El boton pusado es el de la fila: " & boton_pulsado.ToString()
End Sub
End Class