Имя: Пароль:
1C
1С v8
Программная установка фокуса в поле ввода
0 travelekb
 
13.01.15
21:21
Доброго вечера.

Столкнулся с необычной проблемой на 8.3.5.1231. Задача вроде бы проста, но не работает.

Требуется при нажатии кнопки передать фокус формы в поле ввода.
Есть следующий код:
(до этого места элемент скрыт)
Элементы.ТрекНомер.Видимость = Истина; //показываем
ЭтаФорма.ТекущийЭлемент = Элементы.ТрекНомер; //передаем фокус

где ТрекНомер - это элемент поле ввода на форме.

Самое интересное, что при двойном последовательном нажатии на кнопку - код срабатывает и фокус передается. Где может быть подвох?
1 mehfk
 
13.01.15
21:22
Проверь на 8.2
Если будет работать - то очередной косяк 8.3.5
2 travelekb
 
13.01.15
21:25
(1) работает на 8.2
3 Злопчинский
 
13.01.15
21:48
А обновить форму если после установки фокуса принудительно?
4 travelekb
 
13.01.15
21:55
(3) Не помогает.
Главный вопрос в том, что в отладчике при выполнении кода:
ЭтаФорма.ТекущийЭлемент = Элементы.ТрекНомер; //передаем фокус

ТекущийЭлемент не меняется.
Как был ТекущийЭлемент кнопкой, так и остается, а по уму после выполнения кода ТекущийЭлемент должен смениться на поле ввода.
5 Злопчинский
 
13.01.15
22:06
Я снеговика не знаю
Но сомнительно
Фокус появляется только после перерисовки формы
Может сюда порыть
6 Управление торговлей
 
13.01.15
22:08
я глюк с установкой фокуса обхожу запуском одноразового демона, в нем ТекущийЭлемент= срабатывает
кто знает, как проще - отпишите
7 travelekb
 
13.01.15
22:10
(5) если дважды нажать на кнопку, отвечающую за смену фокуса (т.е. по сути дважды выполнить одинаковый код) - все работает как надо.
8 Злопчинский
 
13.01.15
22:21
(7) продолжайте исследования
9 kolts23381
 
14.01.15
00:58
У формы есть свойство поведение клавиши ENTER. Должно быть - Переход по элементам формы. У самого была такая хрень потерял где то час чтоб найти.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.