[Gambas-user] Combo box

Rolf-Werner Eilert eilert-sprachen at ...221...
Thu Mar 12 16:22:59 CET 2009


Jeff schrieb:
> Hi All,
> First post, so forgive me newbie-ness.
> 
> If I use the add method to add rows to a combo box I specify an index:
> Eg: 
> ComboBoxProjects.Add("ZZ", 0)
> ComboBoxProjects.Add("AA", 1)
> 
> Then in a button click event I use the index property to get the
> selected row:
> 
> PRINT ComboBoxProjects.Index
> 
> This is fine until I set the sort property to true on the combo box. The
> order of the text changes but the index remains the same, so selecting
> the AA row gives me an index of 0, not 1 as expected.
> 
> Any ideas? What am I doing wrong?
> 
> I am using Gambas 2.7.1 on Ubuntu Ibex
> 
> 

Presumably not much wrong - as far as I know, there's no Tag property 
for each item in a ComboBox like e. g. in a TreeView. Such a tag could 
be used to overcome this drawback of sorting-and-confusing the list.


In my projects I have been using two approaches to solve the problem:

1) Make a second array with the same contents, unsorted, and search for 
the item clicked on in the ComboBox. This will deliver proper results 
only when the items are unique. (You don't need to give an index if you 
sort it anyway.)

ComboBoxProjects.Add("ZZ")
Background.Add("ZZ")
ComboBoxProjects.Add("AA")
Background.Add("AA")

ComboBoxProjects.Sort()

...when clicked:
PRINT Background.Index(Background.Find(ComboBoxProjects.Current.Text))

(CAUTION: I didn't test this, it's written from memory...)


2) Don't sort the ComboBox list but feed it with a readily sorted and 
indexed list from you.

Hope it helps...

Rolf




More information about the User mailing list