Impostare il colore dello sfondo del ComboBox
Attualmente il ComboBox in Gambas è formato da almeno due Oggetti grafici, verificabili agevolmente invocando la sua Proprietà ".Children":
Public Sub Form_Open() Dim ob As Object For Each ob In ComboBox1.Children Print Object.Type(ob) Next End
Come si potrà notare, i due Oggetti - "Figli" del ComboBox - sono un Panel e TextBox. [Nota 1]
Pertanto è possibile impostare il colore per almeno tre tipi di fondo del ComboBox:
1) con la Proprietà ".Background" nativa del ComboBox medesimo, la quale determinerà la colorazione dell'intera superficie del ComboBox:
Public Sub Form_Open() ComboBox1.Background = Color.Red End
2) con la Proprietà ".Background" del Panel, primo "Figlio" del ComboBox, la quale determinerà la colorazione della sola parte destra cliccabile del ComboBox:
Public Sub Form_Open() ComboBox1.Children[0].Background = Color.Red End
3) con la Proprietà ".Background" del TextBox, secondo "Figlio" del ComboBox, la quale determinerà la colorazione della sola parte sinistra, contenente la lista testuale, del ComboBox:
Public Sub Form_Open() ComboBox1.Children[1].Background = Color.Red End
Dunque è possibile avere anche una doppia colorazione del ComboBox, ad esempio:
Public Sub Form_Open() With ComboBox1 .List = ["aaaa", "bbbb", "cccc"] .Children[0].Background = Color.Red .Children[1].Background = Color.Yellow End With End
Note
[1] Va precisato che l'Oggetto ComboBox possiede due "Figli" Oggetti grafici, se la sua Proprietà ".ReadOnly" è lasciata al suo valore predefinito ovvero impostata a "FALSE". Qualora tale Proprietà sia impostata a "True", allora il ComboBox è costituito da un solo "Figlio": il Panel.