AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.12.2004, 15:34   #1  
exceptor is offline
exceptor
Участник
 
32 / 14 (1) ++
Регистрация: 15.03.2004
Фокус контрола в визарде
Создал Wizard (с пом. мастера мастеров), состоящий из 5 страниц.
При переходе с 3 страницы на 4-ую система автоматом не устанавливает фокус на контрол StringEdit, расположенный на 4-ой странице (контрол там один единственный).

При этом св-во контрола Skip=No. Фокус имеет кнопка Next.

Пробовал: создать на 4-ой странице перед StringEdit-ом новый контрол, например, RealEdit, но фокус на него система все равно не устанавливает.

Подскажите, в чем может быть причина? Спасибо.
__________________
Спокойствие, только спокойствие! (Астрид Линдгрен)
Старый 22.12.2004, 16:39   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Я сделал так:
1. У того контрола, на который надо поставить фокус, объявите свойство AutoDeclaration = Yes. В моем примере далее этот контрол называется "myControl"
2. В форме, который сгенерировал мастер мастеров, создайте метод, который устанавливает фокус на Ваш контрол, типа
PHP код:
void setFocusToControl()
{
   ;  
   
myControl.setFocus();

3. В классе, который сгенерировал мастер мастеров, перекройте метод next() и там напишите такой код:
PHP код:
void next()
{
    
Object obj this.formRun();
    
super();

    if (
this.curTab() == 4)
        
obj.setFocusToControl();

4. После этого при переходе на 4-ю страницу фокус устанавливатся на контрол. Я это у себя проверил.
Старый 22.12.2004, 17:12   #3  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
:)
Ну и метод back() тоже надо перекрыть.
Старый 22.12.2004, 20:54   #4  
exceptor is offline
exceptor
Участник
 
32 / 14 (1) ++
Регистрация: 15.03.2004
Спасибо за код. Подскажите, пожалуйста, почему тогда код
PHP код:
myControl.setFocus(); 
не работает, если его вставить в метод pageActivated() на 4 странице или в метод tabChanged() на Tab-контроле ?
__________________
Спокойствие, только спокойствие! (Астрид Линдгрен)
Старый 23.12.2004, 08:58   #5  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Потому что при нажатии на кнопку "Далее" методы pageActivated() и tabChanged() не вызываются. Эти методы вызываются, когда Вы кликаете по вкладке TabControla, а эти вкладки в визарде спрятаны.
Старый 24.12.2004, 08:40   #6  
exceptor is offline
exceptor
Участник
 
32 / 14 (1) ++
Регистрация: 15.03.2004
Может я неправ, но по-моему методы pageActivated() и tabChanged() все-таки должны вызываться (по крайне мере у меня так и есть) и для визарда в том числе.
По сути визард отличается от таб-контрола только внешним представлением закладок.

В общем эти методы у меня вызываются, но setFocus() не срабатывает. Возможно, после вызова метода pageActivated() происходит вызов каких-то других методов, о которых мне неизвестно? А они уже в свою очередь меняют фокус.
__________________
Спокойствие, только спокойствие! (Астрид Линдгрен)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Прикрутка контрола к едит методу дейтасоурса HorrR DAX: Программирование 4 11.09.2008 13:48
Перехватить событие динамически созданного контрола. Как? Hub DAX: Программирование 1 31.07.2008 17:05
Проверка контрола на существование miklenew DAX: Программирование 4 02.10.2007 11:42
Фокус Grid (определить под фокусом ли грид) Андрей К. DAX: Программирование 4 26.09.2007 13:34
Как определить для какого контрола вызван DataMethod? rumpleteazer DAX: Программирование 12 06.09.2002 12:34
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:10.