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:
C e Pos sono due variabili globali.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
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

Rispondi quotando

