Удержать фокус в контроле

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Удержать фокус в контроле

Сообщение Joo » 06.10.2008 (Пн) 15:32

Создаю контрол, наследник от Control.
Мне необходимо чтобы при нажатии клавиш Left, Right, Up, Down и Tab фокус оставался на контроле. Пробовал обрабатывать WM_KEYDOWN один фиг уходит фокус, ну с Tab еще ладно, но жмакая на стрелки фокус тоже теряется.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Удержать фокус в контроле

Сообщение Williams » 06.10.2008 (Пн) 15:34

В событии LostFocus метод Control.Focus() не пробовал?
И вы думаете, что вас оставят в живых после прочтения этого поста?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Re: Удержать фокус в контроле

Сообщение Sebas » 06.10.2008 (Пн) 15:47

а событие LostFocus уже отменили?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Удержать фокус в контроле

Сообщение Joo » 06.10.2008 (Пн) 15:55

Это не есть гуд. При LostFocus делать назад фокус. В общем вот сделал.

Код: Выделить всё
   
...
    Public Const WM_GETDLGCODE = &H87
    Public Const DLGC_WANTARROWS = &H1
    Public Const DLGC_WANTTAB = &H2
    Public Const DLGC_HASSETSEL = &H8
    Public Const DLGC_WANTCHARS = &H80
...
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
        Select Case m.Msg
            Case WM_GETDLGCODE
                m.Result = DLGC_WANTARROWS Or DLGC_WANTTAB Or DLGC_HASSETSEL Or DLGC_WANTCHARS
            Case Else
                MyBase.WndProc(m)
        End Select
    End Sub
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог


Вернуться в Visual Basic .NET

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

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

    TopList