добавление элементов в выпадающий список - PullRequest
3 голосов
/ 14 июня 2011

Я пытаюсь добавить некоторые элементы в выпадающий список, как показано на сайте msdn, но он выдает исключение нулевой ссылки

 comboBox1.Items.Add("test");

Я пытаюсь изменить его на

ComboBox combobox1 = new ComboBox();
object test = new object();
test= "test";
comboBox1.Items.Add(test);

Но это не сработало. Скажите, в чем проблема?Спасибо

РЕДАКТИРОВАТЬ: РЕШЕНО: проблема была в том, что я звонил

InitializeComponent();

после этого кода, а не раньше, теперь он работает так, как хотелось бы раньше:)

Ответы [ 2 ]

3 голосов
/ 14 июня 2011

В этом примере:

ComboBox combobox1 = new ComboBox();
object test = new object();
test= "test";
comboBox1.Items.Add(test);

Ваш ComboBox не является дочерним элементом какого-либо контейнера (т. Е. Формы), поэтому он не будет виден в вашем пользовательском интерфейсе. Я предполагаю, что вы имели в виду «не работает» в этом случае. Если вы создаете элемент управления в коде, вам нужно добавить его в форму или дочерний элемент вашей формы, например, (при условии WinForms, а также того, что код находится в вашем классе Form ...)

Controls.Add( combobox1 );

Вам также нужно будет установить размер, расположить его и т. Д.

Коллекция Items для ComboBox не должна быть нулевой, так как она создается, когда вы ее вызываете, поэтому нам нужно увидеть, откуда исходит combobox1. Когда вы имеете дело с простой проблемой, такой как NullReferenceException, вы должны использовать отладчик, чтобы выяснить, какой объект является нулевым.

РЕДАКТИРОВАТЬ: Как указал Манджур, combobox1 не то же самое, что comboBox1, так как C # чувствителен к регистру (обратите внимание на заглавную B). Итак, из приведенных вами доказательств comboBox1 (заглавная B) является нулевым.

3 голосов
/ 14 июня 2011

Заменить на

ComboBox combobox1 = new ComboBox();
object test = new object();
test= "test";
combobox1.Items = new ArrayList();
combobox1.Items.Add(test);

combobox1 и comboBox1 не совпадают

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...