Abrir un formulario desde un DataGridView

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

Quizá te interese...