2009-09-10 35 views
6

¿Cómo se obtiene la célula número de fila DataGridView? Específicamente, si un usuario ha seleccionado una sola celda, ¿cómo puede obtener ese número de fila? Necesita acceder a una celda particular en función de lo que el usuario haya seleccionado.los números de fila en un DataGridView

Yo sé que el método RemoveAt se puede utilizar para eliminar el foco, pero no se puede obtener el número de fila en el foco parecer?

¡Gracias por la ayuda!

Respuesta

17

Usted puede simplemente utilizar RowIndex en el current cell:

var row = dataGridView1.CurrentCell.RowIndex; 
0

Es casi lo mismo, pero también se puede usar esta solución:

var row = dataGridView1.CurrentRow.Index 
0

Otra forma si es necesario realizar un seguimiento de la interacción del usuario con un DataGridView: en mi caso no es un procesamiento adicional en algunas funciones genéricas que utilizan las coordenadas de fila y columna Me.I_SelCol y Me.I_SelRow, pero no he demostrado que debido a que no es relevante para el OP.

Saludos, Rob

Private Sub I_DataGridView_CurrentCellChanged(sender As Object, e As EventArgs) Handles I_DataGridView.CurrentCellChanged 

     If Me.I_DataGridView.CurrentCellAddress.X < 0 Or Me.I_DataGridView.CurrentCellAddress.Y < 0 Then Exit Sub 

     ' The Windows Me.I_DataGridView object will have already deselected the current cell and selected the 
     ' new cell as per user navigation using mouse or cursor keys. We just need to store the current 
     ' co-ordinates for the currently selected cell. 

     Me.I_SelCol = Me.I_DataGridView.CurrentCellAddress.X 
     Me.I_SelRow = Me.I_DataGridView.CurrentCellAddress.Y 

Exit Sub 
1

éste funciona bien.

Private Sub DataGridView1_RowPrePaint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewRowPrePaintEventArgs) Handles DataGridView1.RowPrePaint 

If e.RowIndex >= 0 Then 
     Me.DataGridView1.Rows(e.RowIndex).Cells(0).Value = e.RowIndex + 1 
    End If 
End Sub 
Cuestiones relacionadas