![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему нажатие Tab в DBGrid переводит курсор на следующую запись? [D5, Win95/98, Win2k]
forrest1 © (2002-02-21 16:37:00)Салют мастерам!
В названии темы уже практически всё сказано.
На форме 2 DBGridа Пусть фокус сосредоточен на DBGrid1. При нажатии клавиши Tab фокус перемещается на DBGrid2,
что вообщем-то вполне очевидно, если DBGrid2.TabStop=True.
Всё так и происходит, однако в DBGrid1 активной становится не та запись, на которой стоял курсор в момент нажатия Tab, а следующая.
Вопрос: Как сделать так, чтобы активной оставалась та же запись??(точнее, чтобы курсор не перемещался на следующую)
Спасибо.
P.S. При нажатии клавиши Tab в событии DBGrid1.OnKeyDown
Key имеет значение 9(проверял), что соответсвует Tab.
forrest1 (2002-02-27 11:43:00) [1]to Johnmen
Ты гений!
Благодарю!
Johnmen (2002-02-26 09:52:00) [2]Ну вот видишь, сначала-то не сказал, что колонка одна...
Решение одно : обрабатывай KeyDown для DBGrid1 !
Примерно так :
if Key=9 then begin;
Key=0;
DBGrid2.SetFocus;
end;
forrest1 (2002-02-26 09:09:00) [3]Неужели нет ответа???????? :))
forrest1 (2002-02-22 14:36:00) [4]to Deus:
Спасибо! А без этого нельзя? А то как-то некрасиво, да и код
запутывает.
to Johnmen:
точно говорю. именно так всё и происходит. Попробуй поставь два DBGrida на Form. Точно говорю. Чтобы проще было понять сделай, чтобы в DBGridах была только одна колонка из Recordseta
Мой вопрос остаётся в силе.
Johnmen (2002-02-21 17:03:00) [5]Не могёт таково быть !
Что-то ты не все сказал :)
Deus (2002-02-21 16:56:00) [6]а если в этом событии DBGrid1.OnKeyDown
присвоить Key:=nil;?
Или просто делать DBGrid1.DataSource.DataSet.Prior