levraininjaneer
levraininjaneer

Reputation: 1377

How to access the list of items in a combobox

What is the "object type" of the .List property of a combobox in vba? I am having quite a struggle in accessing the items when I treat it like a an Array of strings.

Let's say I want to go through the list and check if any of the items match a certain string, how would I go about that?

Upvotes: 0

Views: 5422

Answers (1)

James Heffer
James Heffer

Reputation: 742

Levraininjaneer, I think I might have some help for you...

I've made a windows form with a combobox, a button, and a listbox... The combobox has some items in it, like Item 1 to Item 3, "ABC", "DEF", "GHI"...

WinForm

Now, you say you want to access the items in your list? Well, try this out...

string[] array = new string[comboBox1.Items.Count];
        int itemCount = comboBox1.Items.Count;


            for (int i = 0; i < itemCount; i++)
            {
                array[i] = (string)comboBox1.Items[i];
                string item = array[i].ToString();
                this.listBox1.Items.Add(item);
            }
MessageBox.Show(array[1]);
MessageBox.Show(array[4]);

And it will do this:

enter image description here

And the message boxes at the bottom of the code will display "Item 2" & "DEF"

If you want to "save" an instance of an item in the list box, you can also do it like this:

string arrayItem = array[3].ToString();
        MessageBox.Show(arrayItem);

This will display a message box saying "ABC" as the index (number in [square] brackets, it starts at 0 generally... So if you put array [1] . it's not the 1st item, it's actually the 2nd item... If you wanted to get the last item, and if there's 6 items, it would be:

array[5];

And also, if you wanted to check if an object contains a certain string, you can always use the .Contains method of a string

.Contains("Item")

Hope this helps :)

Win10Pro(x64) Visual Studio 2015 Community C# WindowsForm project

Upvotes: 1

Related Questions