22.12.2004, 15:34 | #1 |
Участник
|
Фокус контрола в визарде
Создал Wizard (с пом. мастера мастеров), состоящий из 5 страниц.
При переходе с 3 страницы на 4-ую система автоматом не устанавливает фокус на контрол StringEdit, расположенный на 4-ой странице (контрол там один единственный). При этом св-во контрола Skip=No. Фокус имеет кнопка Next. Пробовал: создать на 4-ой странице перед StringEdit-ом новый контрол, например, RealEdit, но фокус на него система все равно не устанавливает. Подскажите, в чем может быть причина? Спасибо.
__________________
Спокойствие, только спокойствие! (Астрид Линдгрен) |
|
22.12.2004, 16:39 | #2 |
Участник
|
Я сделал так:
1. У того контрола, на который надо поставить фокус, объявите свойство AutoDeclaration = Yes. В моем примере далее этот контрол называется "myControl" 2. В форме, который сгенерировал мастер мастеров, создайте метод, который устанавливает фокус на Ваш контрол, типа PHP код:
PHP код:
|
|
22.12.2004, 17:12 | #3 |
Участник
|
Ну и метод back() тоже надо перекрыть.
|
|
22.12.2004, 20:54 | #4 |
Участник
|
Спасибо за код. Подскажите, пожалуйста, почему тогда код
PHP код:
__________________
Спокойствие, только спокойствие! (Астрид Линдгрен) |
|
23.12.2004, 08:58 | #5 |
Участник
|
Потому что при нажатии на кнопку "Далее" методы pageActivated() и tabChanged() не вызываются. Эти методы вызываются, когда Вы кликаете по вкладке TabControla, а эти вкладки в визарде спрятаны.
|
|
24.12.2004, 08:40 | #6 |
Участник
|
Может я неправ, но по-моему методы pageActivated() и tabChanged() все-таки должны вызываться (по крайне мере у меня так и есть) и для визарда в том числе.
По сути визард отличается от таб-контрола только внешним представлением закладок. В общем эти методы у меня вызываются, но setFocus() не срабатывает. Возможно, после вызова метода pageActivated() происходит вызов каких-то других методов, о которых мне неизвестно? А они уже в свою очередь меняют фокус.
__________________
Спокойствие, только спокойствие! (Астрид Линдгрен) |
|