|
|
|
| На форме есть Поле1, Поле2, Поле3, Поле4, Поле5
Задано: При потере фокуса Полем2 - если Поле5=true то переход на новую строку, если false то Поле3.SetFocus
в свойствах Поле2, Поле3, - "потеря фокуса" задан переход на следующее поле - Поле3, Поле4 соотвественно, но если Поле2 имеет фокус и мышкой щелкаешь на Поле1 - Поле1 не получает фокус, а Поле3 получает (т.к. обработка события). еще раз по Полю1 мышкой - получает фокус Поле4.
Вопрос как заставить в этом случае Получать фокус Полю1?
Как выловить это нажатие мышью?? | |
|
| |
|
|
|
| ну все происходит согласно заложенной логике
А зачем все это? сделайте поля 3 и 4 недоступными при Поле5=true | |
|
| |
|
|
|
| Но свойство Доступ - работает со всей формой.
Поля3-4 нужны не для всех записей на форме и учитавая дикость Юзеров к ним доступ лучше не давать. Я даже проверку на полчение фокуса этими полями написал. | |
|
| |
|
|
|
| Но свойство Доступ - работает со всей формой. |
на событие "текущая запись" переводите фокус в поле2, а поля 3-4 делайте доступными в зависимости от поля 5 | |
|
| |
|
|
|
| Попробуйте так:
на Поле1_MouseDown - Me!Поле1.Tag = "!"
на Поле2_LostFocus и Поле3_LostFocus первой строкой - If Len(Me!Поле1.Tag)>0 Then Exit Sub
на Поле1_GotFocus - Me!Поле1.Tag = ""
Или обрабатывайте не LostFocus, а KeyDown. Если нажата Enter или Tab - передход на Поле2 или Поле3. | |
|
| |
|
|
|
| Мысля, буду пробовать.
спасибо | |
|
| |
|
|
|
| Вообще-то событие "потеря фокуса" срабатывает только при получении фокуса другим эл.управления.
Поэтому, все зависит от того, куда кликнет пользователь. Отсюда вывод-надо проверять "получение фокуса" у поля 1.
Если есть возможность, лучше обрабатывать "обновление" или что-то в этом роде. | |
|
| |
|
|
|
| Может так:?
Private Sub Поле2_LostFocus()
If Me.Поле5 Then DoCmd.GoToRecord acDataForm, Me.Name, acNext
End Sub
|
Последовательность переходов по контролам задать штатными индексами перехода по TAb. | |
|
| |
|
|
|
| Не, проблем с логикой движения нет.
Есть неудобство при получении Полем2 фокуса, потом срабатывает Поле3, Поле4 (как положено) но если необходимо вернуться на Поле1 (мышей) - цепочку не разорвать.
Дяде Федору - "Обновление" не всегда удобно, его могли и необновлять.
При нажатии кнопки мыши на Поле1 срабатывает Поле2_Потеряфокуса - Переход на след Поле3, а Поле1 не получает фокуса. | |
|
| |
|
|
|
| Уря Получилось, использовал KeyDown, Анатолий спасибо напомнил про функцию | |
|
| |