Differenze tra le versioni di "ComboBox che consente di posizionarsi sulla prima ricorrenza di un item quando si digitano le sue prime lettere"

Da Gambas-it.org - Wikipedia.
Riga 7: Riga 7:
 
  End   
 
  End   
 
   
 
   
  '''Public''' Sub ComboBox1_Change()   
+
  Public Sub ComboBox1_Change()   
 
        
 
        
 
   Dim s As Short
 
   Dim s As Short
Riga 19: Riga 19:
 
     End With
 
     End With
 
        
 
        
  '''End''' 
+
  End
 
   
 
   
  '''Public''' Sub ComboBox1_KeyRelease()   
+
   
 +
Public Sub ComboBox1_KeyRelease()   
 
        
 
        
 
   If Key.Code < 127 Then   
 
   If Key.Code < 127 Then   
Riga 29: Riga 30:
 
   Endif   
 
   Endif   
 
        
 
        
  '''End'''
+
  End

Versione delle 11:22, 10 giu 2024

Per ottenere un ComboBox che consenta di posizionarsi sulla prima ricorrenza di un item quando si digitano le sue prime lettere, si può usare questa soluzione:

Public Sub Form_Open()  
  
  ComboBox1.List = ["abcde", "abcef", "abefg", "acdef", "acdfg", "acefg"]   ' Una lista esmplificativa di elementi testuali
  ComboBox1.Tag = 1  
     
End  

Public Sub ComboBox1_Change()  
     
  Dim s As Short
     
   With ComboBox1  
     s = .List.Find(String.Left(.Text, .Pos) & "*", gb.Like)
       If s > -1 Then
         .Text = ComboBox1[s].Text  
         .Pos = .Tag  
       Endif
   End With
     
End


Public Sub ComboBox1_KeyRelease()  
     
  If Key.Code < 127 Then  
    Inc ComboBox1.Tag  
  Else  
    ComboBox1.Tag = ComboBox1.Pos + 1  
  Endif  
     
End