|
|
|
| есть на форме текстовое поле
внутри него перемещаюсь по тексту с помошью курсора (стрелочка вниз)... когда текст кончается курсор перепрыгивает в другие поля по фокусу.. можно ли запретить этот переход? чтобы года доходили до конца текста дальше стопорилось перемещение? | |
|
| |
|
|
|
| Посмотрите ветвь дискуссии....
http://hiprog.com/forum/read.php?id_forum=1&id_theme=2565&page=1 | |
|
| |
|
|
|
| то есть использовать конструкцию типа Me![Поле].SelStart = Len(Me![Поле])???
а на какое событие это прикрутить? дополнительно надо проверять еще что нажата стрелка "вниз"? | |
|
| |
|
|
|
| попробовал написать что типа
если нажата вниз то
если поле.SelStart +55 > Len(поле.Value) то
поле.SelStart = Len(поле.Value)
енд иф
енд иф
в резултате скачет в конец но все равно потом теряет поле фокус:( | |
|
| |
|
|
|
| А это пробовал -
меню=сервис =параметры= клавиатура!
Следующий знак | |
|
| |
|
|
|
| пробовал так и стоит этот параметр и все равно не пашет :( | |
|
| |
|
|
|
|
Private blnFlag As Boolean
Private Sub Поле_Exit(Cancel As Integer)
Cancel = blnFlag
End Sub
Private Sub Поле_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 37, 38, 39, 40
blnFlag = True
Case Else
blnFlag = False
End Select
End Sub
Private Sub Поле_KeyUp(KeyCode As Integer, Shift As Integer)
blnFlag = False
End Sub
|
| |
|
| |
|
|
|
| Класс!!! спасибо почти то что надо! только вот когда теперь дохожу до конца, при следйющем теперь выставляется в начало и еще при следующем скачет через весь текст в конец... новерно еще что то надо поправить? можно сделать чтобы в конце и оставался курсор если продолжаю нажимать стрелочку вниз? | |
|
| |
|
|
|
|
Private blnFlag As Boolean
Private intKeyCode As Integer
Private Sub Поле_Exit(Cancel As Integer)
Select Case True
Case ((intKeyCode = 40) And blnFlag)
SendKeys "^{END}"
Case ((intKeyCode = 38) And blnFlag)
SendKeys "^{HOME}"
End Select
Cancel = blnFlag
End Sub
Private Sub Поле_KeyDown(KeyCode As Integer, Shift As Integer)
intKeyCode = KeyCode
Select Case KeyCode
Case 37, 38, 39, 40
blnFlag = True
Case Else
blnFlag = False
End Select
End Sub
Private Sub Поле_KeyUp(KeyCode As Integer, Shift As Integer)
blnFlag = False
End Sub
|
| |
|
| |
|
|
|
| Попробовал этот Ваш пример... ситуация таже.. давайте может я ее подробнее объясню.. может сможете помочь ее решить доконца?
Итак в поле, когда нажимаю однократно стрелку вниз, курсор переходит на следующую строку... когда курсор находится на последней строке при нажатии снова стрелки вниз я попадаю в начало текста (А НЕ ОСТАЮСЬ В КОНЦЕ), и при следующем нажатии стрелки вниз сразу попадаю на последнюю строку (А НЕ НА ВТОРУЮ)...
таже ситуация если с последней строки я начинаю движение вверх.. до верха доходит нормально а при дальнейшем нажатии вверх ситуация зеркально повторяется...
можно ли сделать так чтобы курсор при нажатии на стрелку вниз в последней строке оставался в конце текста и тоже самое при нажатии стрелки вверх при нахождении в первой строке???
заранее спасибо за попытку помочь | |
|
| |
|
|
|
| УРА!!!!!!! все разобрался!!!!!!!!!!!!!
изменил в параметры=клавиатура=нажатие клавиши со стрелкой=следующий знак
на параметры=клавиатура=нажатие клавиши со стрелкой=следующее поле
+ ВАШ КУСОК КОДА!!!!!!!!!!!!!!!!!
и все заработало как надо!!!!!!!!! | |
|
| |
|
|
|
| Кстати после изменения парамтров клавиатуры работает и первый (более короткий вариант!) | |
|
| |
|
|
|
| да и еще раз спасибо за работоспособный пример | |
|
| |