Ho una tabella con dei dati, costituita da più righe e tre colonne. I dati nella prima colonna non sono ordinati in base al nome. Io vorrei realizzare un meccanismo che alla pressione di una lettera mi selezioni la riga che inizia con quella lettera. Il codice che ho realizzato funziona e lo posto:
codice:
Private Sub Lista_KeyPress(KeyAscii As Integer)
Dim i As Integer
If (KeyAscii = 13) Then
Call ShowUser
ElseIf (KeyAscii = 92) And (Lista.Row <> 1) Then
Clipboard.Clear
Clipboard.SetText Lista.TextMatrix(Lista.Row, 0)
Else
If (Chr(KeyAscii) <> C) Then
C = Chr(KeyAscii)
Inizio:
For i = 1 To Lista.Rows - 1
If (Left(Lista.TextMatrix(i, 0), 1) = C) Then
Lista.Row = i
Pos = i
Exit Sub
End If
Next i
Else
For i = Pos + 1 To Lista.Rows - 1
If (Left(Lista.TextMatrix(i, 0), 1) = C) Then
Lista.Row = i
Pos = i
Exit Sub
End If
If (i = Lista.Rows - 1) Then
GoTo Inizio
End If
Next i
End If
End If
End Sub
C e Pos sono due variabili globali.
I miei problemi sono i seguenti:
1) l'attributo "Row" mi permette di selezionare solo la cella, mentre a me interesserebbe selezionare tutta la riga.
2) Questa lista contiene molte righe, quindi è inevitabile una scrollbar laterale, il problema sorge quando seleziono una riga che si trova al di sotto di quelle visibili e non riesco a spostare automaticamente la scrollbar in modo tale che essa possa essere visibile. Come posso fare?
Spero di essere stato chiaro nel presentarvi il problema e spero tanto possiate aiutarmi.
Thx
Max