2012-02-21 7 views
1

У меня есть ListView, сидящий на форме в .NET.WinForms ListView SelectedIndices пуст после того, как форма скрыта

Перед форма скрыт SelectedIncides присутствуют и действуют:

void buttonOK_click() 
{ 
    Assert(listView.SelectedIndices.Count > 0); 
    DialogResult = DialogResult.OK; 
} 

Но после того, как форма модальных возвращается:

form1.ShowDialog(); 
Assert(form1.listView.SelectedIndices.Count > 0); 

Это второе утверждение не удается.

Как читать SelectedIndices из ListView после того, как форма просмотра списка включена (хотя и не уничтожена/удалена/освобождена)?

+4

Коллекция 'SelectedIndices' не может быть изменена из-за того, что форма закрыта. Я предлагаю вам проверить другие события, которые могут быть запущены, и отменить выбор элементов. Под 'ShowModal' вы подразумеваете' ShowDialog' - отображает модальный диалог? –

+1

У другого пользователя были проблемы с выбранными указателями. (http://stackoverflow.com/questions/304844/why-do-selectedindices-and-selecteditems-not-work-when-listview-is-instantiated) – Steve

ответ

1

Вы можете попробовать создать public var на form1, который содержит List (или эквивалент) выбранных индексов? Пусть form1 установил его на событие закрытия формы. Как только управление будет возвращено в исходную форму, вы можете просто получить доступ к этому?

+0

Я не делал этого точного решения, но в равной степени kludgey hack, чтобы заставить его работать. –

+0

Мне пришлось решить эту точную проблему несколько месяцев назад, это позор, который ни один из нас не нашел лучше! – Bridge

1

Вы можете попробовать бесплатный компонент Better ListView Express или полноценный Better ListView. Мы решили проблему SelectedIndices здесь, а также десятки других известных ошибок обычного .NET ListView.

+0

Или ObjectListView или другие сторонние элементы управления. –

+0

Ну, ObjectListView - это оболочка .NET ListView, поэтому он наследует некоторые из его недостатков, и его объектная модель еще совсем отличается (вам нужно переучиться), хотя я считаю, что это отличный контроль. Другие сторонние элементы управления могут также отклоняться от исходного интерфейса ListView. Но на самом деле это возможные альтернативы с проблемой SelectedIndices. – Libor

Смежные вопросы