Показать сообщение отдельно
Старый 03.08.2022, 14:22   #20  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Решил проверить одну догадку и вроде как помогло.

В init() формы поиска SysFormSearch получаю ссылку на вызвавшую её форму и блокирую её перерисовку методом lock()

AOT\Forms\SysFormSearch
X++:
void init()
{
    // KSM 03.08.2022 -->> fix "Потеря фокуса при вызове формы поиска"
    FormDataSource fds;
    ;

    fds = this.args().record().dataSource();
    caller = fds.formRun();
    caller.lock();
    // KSM 03.08.2022 <<-- fix "Потеря фокуса при вызове формы поиска"

    _dataset = element.args().dataset();
    super();
}
В методе сlose() на всякий случай делаю caller.ulock().
Переменная caller типа FormRun объявлена в ClassDeclaration.
Но оно вроде как и без этого само восстанавливается, потому как ещё до закрытия формы поиска видно как на заднем плане перерисовывается основная форма, но к потери фокуса это уже не приводит.

Вуаля, форма поиска больше не теряет фокус там где раньше теряла.
За это сообщение автора поблагодарили: Pustik (7), Logger (10).