Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Как отловить нажатие на Tab Добавлено: 07.03.06 19:43  

Автор вопроса:  mich | Web-сайт: belkyokushin.net | ICQ: 261800349 
На форме только текстовое поле (multiline=false).
Нужно по нажатию "Tab" дописывать строку. Помогите, а?
Ото третий мой вопрос без ответа останется.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 SL



ICQ: 277007669 

Вопросов: 10
Ответов: 86
 Профиль | | #1 Добавлено: 08.03.06 16:59
Если надо когда форма активна и фокус на этом текстовом поле, тогда

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 9 Then
'код программы
End If
End Sub

если надо когда таб нажата, не зависимо от активного текстого поля, то апи GetAsyncKeyState(ставь в таймер на 50, примерно)

если чтобы при активной форме, но фокус не на текстовом поле, то
if GetActiveWindow=me.hwnd and GetAsyncKeyState(9)<>0 then
'программа
end if

Ответить

Номер ответа: 2
Автор ответа:
 SL



ICQ: 277007669 

Вопросов: 10
Ответов: 86
 Профиль | | #2 Добавлено: 08.03.06 17:00
По, крайней мере, так на vb6 можно

Ответить

Номер ответа: 3
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #3
Добавлено: 09.03.06 09:33
Да на vb6 можно. А в Net даже WndProc не ловит.
И поток ради этого(GetAsyncKeyState) не хочется создавать. Вобщем вопрос открыт.

Ответить

Номер ответа: 4
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #4
Добавлено: 09.03.06 09:36
Кстати, TextBox в фокусе.

Ответить

Номер ответа: 5
Автор ответа:
 .::EclipsE::.



ICQ: 208952501 

Вопросов: 22
Ответов: 85
 Профиль | | #5 Добавлено: 09.03.06 10:51
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Tab Then
            'Код проги
        End If
    End Sub

Ответить

Номер ответа: 6
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #6
Добавлено: 12.03.06 22:04
Да, первым делом так пробовал. -Не работает!

Ответить

Номер ответа: 7
Автор ответа:
 .::EclipsE::.



ICQ: 208952501 

Вопросов: 22
Ответов: 85
 Профиль | | #7 Добавлено: 13.03.06 10:38
У меня все работает. Мож у тя в TextBox1 нет фокуса во время нажатия?

Ответить

Номер ответа: 8
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #8
Добавлено: 14.03.06 10:31
В том и прикол. Два первых способа не работают:
    '1
    Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Tab Then MsgBox("TAB !!!";)
    End Sub
    '2
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(9) Then MsgBox("TAB !!!";)
    End Sub


А вот это сработало:
    
'3
    Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
        If e.KeyCode = Keys.Tab Then MsgBox("TAB !!!";)
    End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам