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.
(Creata pagina con "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 assu...")
 
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:
  
 
Si potrà adottare il seguente codice:
 
Si potrà adottare il seguente codice:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
 
   Dim b As Byte
 
   Dim b As Byte
 
+
   
    
+
   With GridView1   
  With GridView1   
+
    .Columns.Count = 4   
    .Columns.Count = 4   
+
    .Rows.Count = 4
    .Rows.Count = 4
+
  End With   
  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
+
  For b = 0 To GridView1.Columns.Max
    GridView1[0, b].Background = &FFFF00
+
    GridView1[0, b].Background = &FFFF00
  Next
+
  Next
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub GridView1_MouseDown()
+
  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
+
  With GridView1
    For k = 0 To .rows.Max
+
    For k = 0 To .rows.Max
      For j = 0 To .Columns.Max
+
      For j = 0 To .Columns.Max
        GridView1[k, j].Background = Color.Default
+
        GridView1[k, j].Background = Color.Default
      Next
+
      Next
    Next
+
    Next
  End With
+
  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
+
  For j = 0 To GridView1.Columns.Max
    GridView1[GridView1.Row, j].Background = &FFFF00
+
    GridView1[GridView1.Row, j].Background = &FFFF00
  Next
+
  Next
 
    
 
    
  '''End'''
+
  End
 
 
  
  
 
==Uso dei tasti ''Giù'' e ''Su'' della tastiera==
 
==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:
 
Se si intendono utilizzare i tasti ''Giù'' e ''Su'' della tastiera, anziché il mouse, un possibile codice è il seguente:
  '''Public''' Sub Form_Open()     
+
  Public Sub Form_Open()     
 
    
 
    
Dim b As Byte     
+
  Dim b As Byte     
 
        
 
        
 
   With GridView1       
 
   With GridView1       
Riga 61: Riga 58:
 
   GridView1.Row = 0   
 
   GridView1.Row = 0   
 
      
 
      
  '''End'''   
+
  End
 
        
 
        
 
        
 
        
  '''Public''' Sub GridView1_KeyPress()   
+
  Public Sub GridView1_KeyPress()   
 
      
 
      
Dim j, k As Byte       
+
  Dim j, k As Byte       
 
      
 
      
 
 
   With GridView1     
 
   With GridView1     
 
     For k = 0 To .rows.Max     
 
     For k = 0 To .rows.Max     
Riga 101: Riga 97:
 
   End Select   
 
   End Select   
 
          
 
          
  '''End'''
+
  End
 
 
 
I codici dei due paragrafi precedenti possono essere anche semplicemente congiunti per ottenere l'effetto sia con il mouse che con i tasti.
 
I codici dei due paragrafi precedenti possono essere anche semplicemente congiunti per ottenere l'effetto sia con il mouse che con i tasti.

Versione attuale delle 17:09, 22 giu 2024

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.