![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передвинуть клавиатурный фокус в ListView?
Islander © (2004-08-22 12:14:00)Здравствуйте!
Есть ListView, в нем 5 элементов. Фокус стоит на 3-ем элементе. Я запоминаю его местонахождение через index := ListView.ItemIndex, затем очищаю ListView и заполняю заново другими данными (тоже 5 элементов). Теперь стоит задача вернуть фокус выделенному элементу. Что я и делаю ListView.ItemIndex := index. Все бы хорошо, и элемент выделяется, но...
Если фокус на ListView и я на клавиатуре нажимаю стрелку "вниз", то вдруг становится выделенным второй элемент, еще раз "вниз" - третий и т.д. А это говорит о том, что хоть и выделена 3-ий элемент, но вот фокус ввода находится на самомо пером. Почему так? Как можно этот самый фокус ввода с клавиатуры подвинуть?
Islander (2004-08-22 12:55:00) [1]У меня немного по-другому:
LvwData.ItemIndex:=index;
LvwData.Items [LvwData.ItemIndex].Focused := true;
Так все в порядке
ssk (2004-08-22 12:50:00) [2]>Правда из этого списка можно оставить только LItem.Focused, остальное не играет роли
в этом случае элемент будет выделен только рамкой фокуса и не будет подсвечен так, как если бы его выбирали мышью или клавиатурой...
Islander (2004-08-22 12:44:00) [3]2ssk:
Спасибо, то что надо. Правда из этого списка можно оставить только LItem.Focused, остальное не играет роли. Еще раз спасибо!
ssk (2004-08-22 12:31:00) [4]а так?
var
LItem: TListItem;
begin
LItem := ListView1.Items[2];
LItem.Selected := True;
LItem.Focused := True;
LItem.MakeVisible(True);
ListView1.Update;
end;