выбрать элементы из списка - PullRequest
1 голос
/ 20 марта 2012

Что я пытаюсь сделать, это выбрать элемент в моем списке, и это работает!То есть он работает один раз, в первый раз, когда выбор элемента идет хорошо, второй раз - получить аргумент вне диапазона исключений для features [0] .SubItems [1] .Text;на нуле.

вот что у меня есть:

private void listViewFeatures_SelectedIndexChanged(object sender, EventArgs e) 
{
    ListView.SelectedListViewItemCollection features = listViewFeatures.SelectedItems;
    string feature = features[0].SubItems[1].Text;
    BL_AddReport addReport = new BL_AddReport(this.databaseConnectionString);

    Dictionary<string, bool> pictures = addReport.GetpicturesFromFeature(feature);

    foreach (KeyValuePair<string, bool> pic in pictures) 
    {
        if (pic.Value) {
            pictureBoxCar.Image = Image.FromFile(pic.Key);
        }
        else 
        {
            pictureBoxEquip.Image = Image.FromFile(pic.Key);
        }
    }
}     

Кто-нибудь знает, в чем проблема?

1 Ответ

2 голосов
/ 20 марта 2012

Держу пари, что вы получите это исключение, если также отключите просмотр списка.

Помните, что это событие предназначено для изменения выбора. Это может означать, что что-то было выбрано, а теперь ничего нет.Фактически, согласно this событие запускается один раз для каждой выбранной вещи.Взгляните на эту ссылку для получения дополнительной информации и дизайна этой проблемы, если это так.

В противном случае просто проверьте, что ваша переменная «features» содержит что-то внутри, прежде чем индексировать в нее

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