Как остановить фокус на DataGrid

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
mnzol
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 29.09.2004 (Ср) 11:02

Как остановить фокус на DataGrid

Сообщение mnzol » 05.07.2005 (Вт) 9:10

На форме 1 DataGrid и 3 кнопки. Если Tab-ом проходить по контролам, то фокус на гриде останавливается через раз! Как бы от этого избавиться и в чем секрет?

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 05.07.2005 (Вт) 10:00

Фокус останавливается всегда (если tabstop у Грида = true), но иногда совсем не на долго.
Просто иногда DataGrid ловит DataGrid1_KeyUp и воспринимает это как призыв бежать на следующий контрол.
Проверить можно таким кодом:
Код: Выделить всё
'Нужны Timer1, DataGrid1 и парочка контролов ловящих фокус (например 3 кнопки)
Private Sub DataGrid1_GotFocus()
DataGrid1.BorderStyle = dbgFixedSingle
End Sub

Private Sub DataGrid1_LostFocus()
DataGrid1.BorderStyle = dbgNoBorder
End Sub

Private Sub Form_Load()
DataGrid1.BorderStyle = dbgNoBorder
DataGrid1.TabAction = dbgControlNavigation '!! Тоже важно !!
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
Caption = ActiveControl.Name
End Sub

Вариант решения проблемы: Гасить DataGrid1_KeyUp:
Код: Выделить всё
Private Sub DataGrid1_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyTab Then KeyCode = 0
End Sub

и все ок!
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

mnzol
Новичок
Новичок
 
Сообщения: 34
Зарегистрирован: 29.09.2004 (Ср) 11:02

Сообщение mnzol » 05.07.2005 (Вт) 11:27

Действительно помогло! И всё же странная логика :!:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 125

    TopList  
cron