Страница: 1 |
Страница: 1 |
Вопрос: Как обработать нажатие Tab в TextBox-е
Добавлено: 26.07.08 16:55
Автор вопроса: Smith | ICQ: adamis@list.ru
Сто лет назад кажись делал как-то, голова дырявая.
Нужно чтоб при редактировании текста нажатие на таб добавляло в текст vbTab и не передавало фокус другому контролу.
VB6! Запарился просматривать ответы поисковика.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 26.07.08 17:03
попробуй включи keypreview, должно помочь
Номер ответа: 2
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #2
Добавлено: 26.07.08 17:04
Пробовал
Номер ответа: 3
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #3
Добавлено: 26.07.08 18:20
Ну обрабатывай KeyPress или что за события у час там есть и ставь Cancel=true
Как в VB6 не знаю, в VB .NET именно так
Номер ответа: 4
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #4
Добавлено: 26.07.08 20:19
KeyPress в VB6 не получает нажатие на Tab.
Номер ответа: 5
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #5
Добавлено: 27.07.08 04:27
Перерыл всё и вся, вдоль и поперек, нихрена не нашел, решил послать всё это на и сделать по своему, по простому.
Таб попадает даже в Text1_KeyPress, но только если ВСЕ контролы на форме (кроме нашего текстбокса естесно) отказываются принимать фокус по табу.
Короче TabStop = False им всем и всё тут.
Номер ответа: 6
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #6
Добавлено: 27.07.08 13:22
В KeyDown & KeyUp наверняка Tab отлавливаться будет
Номер ответа: 7
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #7
Добавлено: 27.07.08 14:31
Когда у всех контролов TabStop = False тогда да, отлавливается везде и всюду, где нужно и где ненужно.
А если на форме ещё хоть одна тварь требует табстопа, то хрен ты его выловишь, только апи асинккейстэйтом.
Номер ответа: 8
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #8
Добавлено: 27.07.08 15:21
А если на форме ещё хоть одна тварь требует табстопа, то хрен ты его выловишь, только апи асинккейстэйтом.
- Точно.
For Each Control In Me.Controls
Control.TabStop = False
Next Control
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyShift Then
For Each Control In Me.Controls
Control.TabStop = True
Next Control
End If
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyShift Then
For Each Control In Me.Controls
Control.TabStop = False
Next Control
End If
End Sub
Private Sub Text1_LostFocus()
For Each Control In Me.Controls
Control.TabStop = True
Next Control
End Sub
хотим снять фокус с text1 - жмем tab с шифтом.
дальше всё как обычно.
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 27.07.08 16:26
Не поверю... Я много лет назад делал это на VB6 и уверен что все решается гораздо проще и TabStop тут ваще не при делах.. ты наверняка что то не так делаешь..
Номер ответа: 10
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #10
Добавлено: 27.07.08 16:55
Я уже 8 лет что-то не так делаю Если в этих восьми событиях можно что-то сделать не так, то я это как правило делаю.
Глюки самого разного калибра так и атакуют
Так я и сам много лет назад делал это гораздо проще. А сейчас получается почти тоже самое что и у Сереги, правда у меня фокус отнять только мышкой можно.
Но с шифт-табом удобнее.
Спасибо!
Номер ответа: 11
Автор ответа:
J. Smith
ICQ: ненавижу
Вопросов: 40
Ответов: 477
Web-сайт:
Профиль | | #11
Добавлено: 27.07.08 16:57
EROS вспомни каким сервиспаком ты пользовался, у меня VB6 SP5. Это тоже может иметь значение.