Differenze tra le versioni di "Cambiare il colore di fondo di una riga cliccata in una GridView e far tornare quello di un'altra al colore iniziale"
Da Gambas-it.org - Wikipedia.
Riga 5: | Riga 5: | ||
Dim b As Byte | Dim b As Byte | ||
− | + | ||
− | + | With GridView1 | |
− | + | .Columns.Count = 4 | |
− | + | .Rows.Count = 4 | |
− | + | End With | |
− | |||
<FONT color=gray>' ''All'inizio la prima riga in alto assume il colore giallo:''</font> | <FONT color=gray>' ''All'inizio la prima riga in alto assume il colore giallo:''</font> | ||
− | + | For b = 0 To GridView1.Columns.Max | |
− | + | GridView1[0, b].Background = &FFFF00 | |
− | + | Next | |
'''End''' | '''End''' | ||
Riga 22: | Riga 21: | ||
'''Public''' Sub GridView1_Click() | '''Public''' Sub GridView1_Click() | ||
− | Dim j, k As Byte | + | Dim j, k As Byte |
− | |||
<FONT color=gray>' ''Viene attribuito il colore predefinito a tutte le righe:''</font> | <FONT color=gray>' ''Viene attribuito il colore predefinito a tutte le righe:''</font> | ||
− | + | With GridView1 | |
− | + | For k = 0 To .rows.Max | |
− | + | For j = 0 To .Columns.Max | |
− | + | GridView1[k, j].Background = Color.Default | |
− | + | Next | |
− | + | Next | |
− | + | End With | |
<FONT color=gray>' ''Viene quindi attribuito il colore giallo alla riga cliccata:''</font> | <FONT color=gray>' ''Viene quindi attribuito il colore giallo alla riga cliccata:''</font> | ||
− | + | For j = 0 To GridView1.Columns.Max | |
− | + | GridView1[GridView1.Row, j].Background = &FFFF00 | |
− | + | Next | |
'''End''' | '''End''' | ||
− | |||
Riga 47: | Riga 44: | ||
'''Public''' Sub Form_Open() | '''Public''' Sub Form_Open() | ||
− | + | Dim b As Byte | |
With GridView1 | With GridView1 | ||
Riga 66: | Riga 63: | ||
'''Public''' Sub GridView1_KeyPress() | '''Public''' Sub GridView1_KeyPress() | ||
− | + | Dim j, k As Byte | |
− | |||
With GridView1 | With GridView1 | ||
For k = 0 To .rows.Max | For k = 0 To .rows.Max |
Versione delle 15:47, 4 mag 2021
Il caso è quello in cui in una GridView ogni qual volta si clicca all'interno di una sua riga, questa si colora, ed un'altra riga, precedentemente colorata, torna ad assumere il colore predefinito.
Si potrà adottare il seguente codice:
Public Sub Form_Open() Dim b As Byte With GridView1 .Columns.Count = 4 .Rows.Count = 4 End With ' All'inizio la prima riga in alto assume il colore giallo: For b = 0 To GridView1.Columns.Max GridView1[0, b].Background = &FFFF00 Next End Public Sub GridView1_Click() Dim j, k As Byte ' Viene attribuito il colore predefinito a tutte le righe: With GridView1 For k = 0 To .rows.Max For j = 0 To .Columns.Max GridView1[k, j].Background = Color.Default Next Next End With ' Viene quindi attribuito il colore giallo alla riga cliccata: For j = 0 To GridView1.Columns.Max GridView1[GridView1.Row, j].Background = &FFFF00 Next End
Uso dei tasti Giù e Su della tastiera
Se si intendono utilizzare i tasti Giù e Su della tastiera, anziché il mouse, un possibile codice è il seguente:
Public Sub Form_Open() Dim b As Byte With GridView1 .Columns.Count = 4 .Rows.Count = 4 End With ' All'inizio la prima riga in alto assume il colore giallo: For b = 0 To GridView1.Columns.Max GridView1[0, b].Background = &FFFF00 Next GridView1.Row = 0 End Public Sub GridView1_KeyPress() Dim j, k As Byte With GridView1 For k = 0 To .rows.Max For j = 0 To .Columns.Max GridView1[k, j].Background = Color.Default Next Next End With Select Case Key.Code Case Key.Down If GridView1.Row + 1 < GridView1.Rows.Count Then For j = 0 To GridView1.Columns.Max GridView1[GridView1.Row + 1, j].Background = &FFFF00 Next Else For j = 0 To GridView1.Columns.Max GridView1[GridView1.Row, j].Background = &FFFF00 Next Endif Case Key.Up If GridView1.Row - 1 > -1 Then For j = 0 To GridView1.Columns.Max GridView1[GridView1.Row - 1, j].Background = &FFFF00 Next Else For j = 0 To GridView1.Columns.Max GridView1[GridView1.Row, j].Background = &FFFF00 Next Endif End Select End
I codici dei due paragrafi precedenti possono essere anche semplicemente congiunti per ottenere l'effetto sia con il mouse che con i tasti.