2015-07-17 3 views
2

Это мой код:Как выбрать элементы в ListView?

for (int i = 0; i < 30; i++) 
{ 
    FileListView.Items.Add(new ListViewItem(new[] { "asd1", "asd2" })); 

    if (i < 10) 
    { 
     FileListView.Items[i].Selected = true; 
    } 
} 

FileListView.ItemDrag += new ItemDragEventHandler(FileListView_ItemDrag); 

но при запуске приложения, я не могу видеть, первые 10 позиций, выбранных. Чтобы увидеть их, мне нужно щелкнуть по одному из них, и они будут выделяться (но, конечно, сразу же отменяются, так как это похоже на щелчок по одной строке).

Как я могу выбрать 10 предметов? Таким образом, пользователь видит их выбранными, а затем может щелкнуть мышью, чтобы перетащить/удалить в какой-то пункт назначения.

+0

Я копирую/вставляю ваш код, и все работает отлично. Вы используете какой-либо другой код для фокусировки/выбора других элементов в форме? [example] (http://i.imgur.com/OBqSmxb.png) – Jon

+0

Я добавил другую строку, которую я получил позже, событие Drag, связанное с ListView. Но я не думаю, что это важно ... – markzzz

+0

Где этот код? Я скопировал и вставил ваш код в конструктор Form_Load(), Form_Shown(), Form_VisibleChanged(), и все они работают. – Shar1er80

ответ

3

Элементы выбираются но управления не активирован. Используйте FileListView.Select() для активации элемента управления.

0

Вы установили свойство multiselect с помощью конструктора или кода?

FileListView.MultiSelect=true ; 

Try также:

FileListView.Invalidate() after the loop. 
+0

Да, конечно, я это установил! – markzzz

+0

Другая возможность попробовать: Control.Invalidate() – Graffito

2

Похоже, ваш ListView не ориентирован так, когда вы выбираете пункты, они не выдвигают на первый план.

Вы можете либо сосредоточить контроль, прежде чем руки, как это:

FileListView.Focus(); 

или то, что, вероятно, лучше, чтобы отключить HideSelection свойство. Это позволяет ListView отображать выбранные элементы, если они не сфокусированы.

FileListView.HideSelection = false; 

Edit: С ФОС новой информации, что они должны показать, синий, дать фокус клавиатуры управления, как только вы сделали:

FileListView.Select(); 
+0

У меня есть .Focus (перед их выбором) и Скрыть выбор false. Но теперь я вижу выбранные предметы серыми, а не синими! Мне нужен синий цвет ... – markzzz

+0

Извините, вы не упомянули, что им нужно было показать синий цвет, как если бы ListView имел фокус клавиатуры. Обновленный ответ, хотя, чтобы быть справедливым, я думаю, @Jon просто избили меня! – Equalsk

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