Работа со списком в winforms (c #) - PullRequest
1 голос
/ 26 октября 2009

Как я могу добавить 10 элементов в список динамически в список, и после этого я хочу показать выбранное значение элемента в событии щелчка списка.

Я пробовал вот так

for(int i=1;i<10 ;i++)
{
mylistbox.Items.Add(i.ToString());
}

в обработчике событий клика

MessageBox.Show(mylistbox.SelectedValue.ToString());

это показывает ошибку.

Что не так с этим?

Ответы [ 3 ]

1 голос
/ 26 октября 2009

Попробуйте вместо этого использовать свойство SelectedItem .

SelectedValue работает только тогда, когда вы заполняете ListBox объектами и им назначается ValueMember . Вот минимальный пример:

var mylistbox = new ListBox {Dock = DockStyle.Fill};
mylistbox.Click += (sender, e) =>
                   MessageBox.Show(mylistbox.SelectedItem.ToString());
for (int i = 1; i < 10; i++)
{
    mylistbox.Items.Add(i.ToString());
}
new Form {Controls = {mylistbox}}.ShowDialog();
1 голос
/ 26 октября 2009

Используйте следующий код в обработчике кликов

MessageBox.Show (mylistbox.Text.ToString ()); // Это покажет выбранный элемент как ваше требование.

заменить .SelectedValue на .Text

0 голосов
/ 26 октября 2009

У Дмитрия это точно.

Хороший способ проверить, что происходит при отладке, - выделить «mylistbox.SelectedValue» и щелкнуть правой кнопкой мыши, затем выбрать «Добавить наблюдение». Затем вы можете отслеживать значение этого свойства в окне Watch.

Вы можете сделать это с любой переменной, и каждый раз, когда она показывает значение NULL, и вы пытаетесь использовать это значение, вы знаете, что оно выдаст исключение Null Reference.

Это также хорошо для сбора букв в строке, которую вы пытаетесь преобразовать в целое число, и другие подобные "d'oh!" моменты.

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