У меня была такая же проблема при использовании listview. Кажется, что есть какая-то проблема в отношении события, выпущенного после выбора.
SelectedIndexChanged
событие, в котором сфокусированный элемент, выбранные элементы и выбранные индексы становятся нулевыми. Это и есть причина вышеупомянутой проблемы.
ItemActivate
Событие может использоваться альтернативно без каких-либо сбоев, где сфокусированный элемент, выбранные элементы или выбранные индексы не являются нулевыми во втором или в любое другое время.
При создании списка с подробностями событие SelectedIndexChanged
по умолчанию запущено. Таким образом, изменение соответствующего класса Designer и связанного с ним обработчика событий в основном классе будет выполнять эту работу.
В классе дизайнера см. Мероприятие, подписанное. Пример:
this.TaskslistView.SelectedIndexChanged
+= new System.EventHandler(TaskslistView_SelectedIndexChanged);
, для которых соответствующее событие TaskslistView_SelectedIndexChanged
метод обработчика присутствует в главном классе. Заменить это событие с
this.TaskslistView.ItemActivate
+= new System.EventHandler(this.TaskslistView_ItemActivate);
и замените соответствующий TaskslistView_SelectedIndexChanged
с TaskslistView_ItemActivate
.
Это должно решить проблему.
Я столкнулся с этой же проблемой в VS2010. Фокусировка была нулевой, и я не мог получить значения SelectedIndices или SelectedItems больше нуля. Я попробовал решение mukunda ниже, и он начал работать. Затем я расчленял и в конечном итоге отключил его решение, и он продолжал работать. Теперь у меня нет проблем, и фактически я не менял никакого кода. Поэтому я предполагаю, что это была какая-то странная ошибка компиляции VS. –