Консультация № 16866
10.02.2005, 19:12
0.00 руб.
0 2 2
Уважаемые эксперты! Как сделать, чтобы перемещение между TextBox (да и
другими элементами) осуществлялось не только клавишей TAB, но и стрелк
ами вниз, вверх, вправо, влево, Enter (дайте коды стрелок, код TAB=9,
Enter=13). В TextBox возникает проблема со стрелками - фокус должен пе
ремещаться, когда курсор находится на грани TextBox, а не где-то внутри
поля TextBox (тогда курсор перемещается просто для редактирования текс
та).

Обсуждение

Неизвестный
10.02.2005, 23:29
общий
это ответ
Здравствуйте, Александр А.А.!
Очень просто, Вам не нужно запоминать коды клавиш, ведь есть же встроенные константы!
См пример:
<i>
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyUp, vbKeyDown, vbKeyRight, vbKeyLeft
If Text1.SelStart = Len(Text1) Then Text2.SetFocus
Case vbKeyTab, vbKeyReturn
Text2.SetFocus
End Select
End Sub
</i>
К тому же, что Вам мешает написать MsgBox KeyAscii в соответсвующую процедуру и получить код нажатой клавиши? Кстати, функциональные клавиши (F1, например) этой ф-ией не обрабатываются.
PS Прочитайте личное сообщение, когда войдете на портал русфака.
Неизвестный
15.02.2005, 09:19
общий
это ответ
Здравствуйте, Александр А.А.!
Вот говорят же, повторенье - мать ученья. Функция chr(целое число >255>) вовращает символ по его коду, а наоборот не помню как функция называется, ну не пользуюсь я ею. То ли asc(), то ли еще как, короче поищи в браузере объектов сначало chr(), они там рядом должны быть. Если хошь могу выслать прогу собственного изготовления для определения кодов клавиш, только адрес вышли на mkop_@rambler.ru
На грани ТекстБокса - это то есть после последнего символа? Используй тогда событие Change, просчитывай в нем длину введенного текста в Текстбоксе и сравнивай эту длину с положением курсора в окошке (свойства текстового окна начинающиеся на Sel...тебе помогут (бейсика под рукой нет,а на память не помню)), если они равны значит курсор находится в конце строки.
Форма ответа