No sé qué ocurre. Primero les muestro el código:
Código:
El problema que tengo, es que si depuro este código a partir de la línea con los dos asteriscos(**), veo que llega una primera vez al evento CurrentCellChanged, que a su vez pasa la acción a la función PosicionRegistro, y me da los valores Pos=0 y MaxPos=402. Hasta aquí perfecto. El problema es que sigo depurando paso a paso, y me entra una segunda vez en el mismo evento, pero esta vez me da los valores Pos=0 y MaxPos=1.Private Sub frmMantenimientos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim objMantenimientos As New MantenimientosDB miGrid.DataSource = objMantenimientos.Lista(FiltroActual) miGrid.DataMember = "Mantenimientos" miGrid.Columns("IDMantenimiento").Visible = False **If miGrid.RowCount > 0 Then miGrid.CurrentCell = miGrid.Rows(0).Cells("NContrato") End Sub Private Sub miGrid_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles miGrid.CurrentCellChanged PosicionRegistro() End Sub Private Sub PosicionRegistro() If Not miGrid.CurrentCell Is Nothing Then Dim Pos As Integer = miGrid.CurrentCell.RowIndex Dim MaxPos As Integer = miGrid.Rows.Count lblRegistro.Text = "Registro " & Pos + 1 & " de " & MaxPos End If End Sub
No comprendo por qué entra una segunda vez, y aun así, tampoco comprendo por qué la segunda vez tiene esos valores en vez de tener los mismos de hace un momento, porqué no ha cambiado nada, y de hecho, al terminar de cargar el formulario, estoy viendo un listado de 402 registros, y un label que me dice "Registro 1 de 1".
Espero que alguien me ilumine un poco porqué me he quedado pasmado con esto, y no se por donde cogerlo.
Gracias!!