.dot IT Solutions Ответов: 1

Ошибка при изменении выбранного элемента в listview. Помогите! ! ! ! !


У меня есть ListView с именем lvSelectCustomer.
Я загрузил некоторые значения в lvSelectCustomer. LvSelectCustomer имеет 5 столбцов. Столбец[2] и столбец[4] скрыты установкой его ширины в ноль. Потому что я не хочу показывать эти колумы во время выполнения. Все данные загружены успешно. Никаких проблем с загрузкой данных. Проблема вот в чем...
Я активирую событие lvSelectCustomer

частная lvSelectCustomer_ItemSelectionChanged недействительным(объект отправителя, ListViewItemSelectionChangedEventargs е)
{
строка strSelectedCustomerIndex = lvSelectCustomer.Сосредоточен.Индекс.Метод toString();
Ящик для сообщений.Show(strSelectedCustomerIndex);
}

Внутри этого события я создал строку под названием strSelectedCustomerIndex . И установите индекс сфокусированного элемента на эту строку. В то время как мы выбираем строку в lvSelectedCustomer в 1-й раз, появляется окно сообщения и показывает индекс этой выбранной/сфокусированной строки. Затем после этого, если я выберу другую строку из lvSelectedCustomer, появится ошибка. Который...
System. NullReferenceException: "ссылка на объект не установлена на экземпляр объекта".
Система.Окна.Формы.элемент управления ListView.FocusedItem. get возвращает null.

Мне нужен индекс выбранной строки, в то время как каждый выбор строки изменяется. Пожалуйста, помогите мне. Я не так уж хорош в c#. Пожалуйста, помогите разобраться. Заранее спасибо.

Что я уже пробовал:

private void lvSelectCustomer_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            string strSelectedCustomerIndex = lvSelectCustomer.FocusedItem.Index.ToString();
            MessageBox.Show(strSelectedCustomerIndex);
        }

1 Ответов

Рейтинг:
8

Michael_Davies

Событие срабатывает для изменения выбранного элемента, когда выбирается новый элемент, старый выбранный элемент сначала отменяется, и это запускает событие, поскольку это изменение, однако в этот момент ничего не выбирается, поэтому элемент равен нулю.

обернуть ваш код с:

if (lvSelectCustomer.SelectedItems.Count != 0 )