Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: перемещение по полям курсором (Access2003)
 
 автор: joka   (08.07.2008 в 13:55)   личное сообщение
 
 

есть на форме текстовое поле
внутри него перемещаюсь по тексту с помошью курсора (стрелочка вниз)... когда текст кончается курсор перепрыгивает в другие поля по фокусу.. можно ли запретить этот переход? чтобы года доходили до конца текста дальше стопорилось перемещение?

  Ответить  
 
 автор: час   (08.07.2008 в 14:05)   личное сообщение
 
 

Посмотрите ветвь дискуссии....

http://hiprog.com/forum/read.php?id_forum=1&id_theme=2565&page=1

  Ответить  
 
 автор: joka   (08.07.2008 в 15:31)   личное сообщение
 
 

то есть использовать конструкцию типа Me![Поле].SelStart = Len(Me![Поле])???
а на какое событие это прикрутить? дополнительно надо проверять еще что нажата стрелка "вниз"?

  Ответить  
 
 автор: joka   (08.07.2008 в 16:15)   личное сообщение
 
 

попробовал написать что типа
если нажата вниз то
если поле.SelStart +55 > Len(поле.Value) то
поле.SelStart = Len(поле.Value)
енд иф
енд иф

в резултате скачет в конец но все равно потом теряет поле фокус:(

  Ответить  
 
 автор: час   (08.07.2008 в 19:31)   личное сообщение
 
 

А это пробовал -
меню=сервис =параметры= клавиатура!
Следующий знак

  Ответить  
 
 автор: joka   (09.07.2008 в 08:50)   личное сообщение
 
 

пробовал так и стоит этот параметр и все равно не пашет :(

  Ответить  
 
 автор: АлексейЕ   (09.07.2008 в 12:35)   личное сообщение
 
 


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

  Ответить  
 
 автор: joka   (09.07.2008 в 14:10)   личное сообщение
 
 

Класс!!! спасибо почти то что надо! только вот когда теперь дохожу до конца, при следйющем теперь выставляется в начало и еще при следующем скачет через весь текст в конец... новерно еще что то надо поправить? можно сделать чтобы в конце и оставался курсор если продолжаю нажимать стрелочку вниз?

  Ответить  
 
 автор: АлексейЕ   (09.07.2008 в 17:07)   личное сообщение
 
 


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

  Ответить  
 
 автор: joka   (10.07.2008 в 08:21)   личное сообщение
 
 

Попробовал этот Ваш пример... ситуация таже.. давайте может я ее подробнее объясню.. может сможете помочь ее решить доконца?

Итак в поле, когда нажимаю однократно стрелку вниз, курсор переходит на следующую строку... когда курсор находится на последней строке при нажатии снова стрелки вниз я попадаю в начало текста (А НЕ ОСТАЮСЬ В КОНЦЕ), и при следующем нажатии стрелки вниз сразу попадаю на последнюю строку (А НЕ НА ВТОРУЮ)...

таже ситуация если с последней строки я начинаю движение вверх.. до верха доходит нормально а при дальнейшем нажатии вверх ситуация зеркально повторяется...

можно ли сделать так чтобы курсор при нажатии на стрелку вниз в последней строке оставался в конце текста и тоже самое при нажатии стрелки вверх при нахождении в первой строке???

заранее спасибо за попытку помочь

  Ответить  
 
 автор: joka   (10.07.2008 в 08:25)   личное сообщение
 
 

УРА!!!!!!! все разобрался!!!!!!!!!!!!!
изменил в параметры=клавиатура=нажатие клавиши со стрелкой=следующий знак
на параметры=клавиатура=нажатие клавиши со стрелкой=следующее поле
+ ВАШ КУСОК КОДА!!!!!!!!!!!!!!!!!
и все заработало как надо!!!!!!!!!

  Ответить  
 
 автор: joka   (10.07.2008 в 08:28)   личное сообщение
 
 

Кстати после изменения парамтров клавиатуры работает и первый (более короткий вариант!)

  Ответить  
 
 автор: joka   (09.07.2008 в 14:10)   личное сообщение
 
 

да и еще раз спасибо за работоспособный пример

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList