ComboBox SelectedIndex всегда возвращает -1

Я пытаюсь получить список принтеров на компьютере пользователя и дать этому человеку возможность выбрать принтер. Я использую ComboBox для отображения списка установленных принтеров (но пробовал несколько других элементов управления).

Я разместил этот код в нескольких областях, пытаясь решить эту проблему:

private void PrintForm_Load(object sender, EventArgs e)
{
     foreach (string my_installed_printers in PrinterSettings.InstalledPrinters)
     {
          printer_list.Items.Add(my_installed_printers);
     }
}

Вот мой код для определения изменения индекса:

private void printer_list_SelectedIndexChanged(object sender, EventArgs e)
{
     Console.WriteLine("SelectedIndex: " + printer_list.SelectedIndex);
     Console.WriteLine("SelectedItem: " + printer_list.SelectedItem);
     Console.WriteLine("SelectedValue: " + printer_list.SelectedValue);
     Console.Write("Items: ");
     foreach (string my_item in printer_list.Items)
     {
         Console.Write(my_item + ", ");
     }
     Console.WriteLine();
}

Это всегда возвращает:

SelectedIndex: -1 SelectedItem: SelectedValue: Элементы:

Странно то, что я все еще вижу все элементы в ComboBox, но я не могу ссылаться на них в коде. Программа не думает, что они существуют. Я все еще новичок в C#, поэтому я очень ценю помощь.

1 ответ

Так что я понял это... Как я уже сказал, я все еще учусь.

Я вручную поместил InitializeComponent() в создание формы. После удаления этой отдельной команды элементы можно было выбирать по назначению.

Спасибо за вашу помощь и предложения!

Другие вопросы по тегам