Oppure

Loading
04/04/23 13:41
alip1
Buon Pomeriggio
Ho una data DataGridView che mi presenta per riga i dati di una lista che carico da db opportunamente.
Ora ho visto che utilizzando i tasti freccia giu o freccia su il puntatore di riga si sposta sulla riga successiva o precedente.
Vorrei sapere se è possibile sapere come fare per intercettare quando il puntatore di riga si sposta in modo da capire su quale riga si trova ed operare sui dati relativi.
Ho pensato di utilizzare l'evento RowLeave così:
Private Sub DGListGroup_RowLeave(sender As Object, e As DataGridViewCellEventArgs) Handles DGListGroup.RowLeave
       Dim row As Integer = 0
      If e.RowIndex = -1 Then
         Exit Sub
      End If
      If e.RowIndex >= 0 And e.RowIndex <= DGListGroup.Rows.Count - 1 Then
            row = e.RowIndex + 1
      
      Else
            row = e.RowIndex - 1
      End If
      Dim cell As DataGridViewCell = Me.DGListGroup.Rows(row).Cells(0)
      Dim iId As Integer
      iId = CInt(cell.Value.ToString)
      SelectGroup(iId)
      currentGroupId = iId
      currentrow = row

      
   End Sub

che funziona finchè utilizzo la freccia in giu; ma quando uso la freccia in su per tornare indietro sulle righe il cursore visualmente si sposta sulle righe precedenti ma il valore di row si incrementa per via della condizione nella if... non so come fare per decrementare il valore di row quando viene utilizzato il tasto freccia su. Forse mi devo memorizzare il valore della riga attuale in una variabile statica??
Grazie per ogni utile consiglio:love:
Ultima modifica effettuata da alip1 04/04/23 13:42
aaa
04/04/23 15:05
Carlo
L'evento da usare è: RowEnter, con tale evento la routine funzionerà anche se clicchi la riga con il mouse.
L'evento RowLeave lo dovresti usare solo se devi sistemare i dati nella riga che si sta abbandonando.

Private Sub DGListGroup_RowEnter(sender As Object, e As DataGridViewCellEventArgs) Handles DGListGroup.RowEnter
    currentrow = e.RowIndex
    Dim iId As Integer = CInt(DGListGroup.Rows(currentrow).Cells(0).Value.ToString)
    SelectGroup(iId)
    currentGroupId = iId
End Sub


Ultima modifica effettuata da Carlo 04/04/23 15:47
in programmazione tutto è permesso
18/04/23 8:46
alip1
Grazie risolto
aaa