How to Set default combobox

c#, combobox, populate, winforms

Solution

`cbxCategory.SelectedIndex` should be set to an integer from `0` to `Items.Count-1` like

cbxCategory.SelectedIndex  = 2;

your

 cbxCategory.SelectedIndex = cbxCategory.Items.IndexOf("New") 

should return -1 as long as no ComboboxItem mutches the string ("New");

another solution though i don't like it much would be

foreach(object obj in cbxCategory.Items){ 
    String[2] objArray = (String[])obj ;
    if(objArray[1] == "New"){
       cbxCategory.SelectedItem = obj;
       break; 
    }
}

perhaps this also requires the following transformation to your code

    foreach (string[] result in list)
    {
      cbxCategory.Items.Add(result);
    }

I haven't tested the code and i am not sure about the casting to String[2] but something similar should work

Problem

So I've been looking to set a default value for my combobox. I found a few things but none of them seem to work. Actually, it works if I create a simple combobox and use `comboBox1.SelectedIndex = comboBox1.Items.IndexOf("something")` but once I dynamically generate the contents of the comboboxes, I can't get it to work anymore. This is how I fill my combo box (located in the class's constructor); ``` string command = "SELECT category_id, name FROM CATEGORY ORDER BY name"; List<string[]> list = database.Select(command, false); cbxCategory.Items.Clear(); foreach (string[] result in list) { cbxCategory.Items.Add(new ComboBoxItem(result[1], result[0])); } ``` I can't seem to get it to work to set a default value, like if I place `cbxCategory.SelectedIndex = cbxCategory.Items.IndexOf("New")` below the above code, it won't work. WinForms, by the way. Thank you in advance.

Original source