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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.07.2009, 09:40   #1  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Поставить курсор на контрол на форме
Добрый день, много уважаемые коллеги.
Ситуация: есть форма, на форме таб, на табе грид, под гридом группа полей. Все это один датасорс. У пользователей есть такой бзик. Хотят чтобы при клике на грид курсор автоматом вставал на одно из полей группы под гридом. Подскажите как это сделать. Единственное, что пришлов голову - этона активе сделать control.setfocus();. Но курсор встает на этот контрол только при открытии формы или при переходе между записями кнопками PageUp/PageDown. Что то я туплю. Как сделать, чтобы курсор ВСЕГДА вставал на этот контрол первым - при активации таба, при открытии формы, при клике мышкой на грид. Помогите...
Заранее спасибо!!
Старый 16.07.2009, 09:45   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Нашол в WinApi::setCursorPos(). но что туда передавать и то ли это что мен нужно?
Старый 16.07.2009, 10:06   #3  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Регистрация: 23.10.2008
Цитата:
Сообщение от Sada Посмотреть сообщение
Нашол в WinApi::setCursorPos(). но что туда передавать и то ли это что мен нужно?
setCursorPos - это, насколько я помню, чтобы ставить текстовый курсор на нужную позицию в текстовом контроле. А в данном случае нужен WinApi::setFocus(), по идее это то же самое, что и control.setFocus(). Осталось вставить в нужные обработчики событий - можно попробовать перекрыть gotFocus() на табе, на гриде, на форме и т.д.
Старый 16.07.2009, 10:14   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
1) При открытии формы:
X++:
public void run()
{
    super();

    control.setFocus();
}
2) при клике мышкой на грид:
X++:
public boolean selectControl(FormControl _control) // метод формы
{
    boolean ret;

    if (_control && _control.id() == grid.id())
        control.setFocus();
    else
        ret = super(_control);

    return ret;
}
3) При активации таба:
X++:
public void pageActivated() // метод этого таба
{
    super();

    control.setFocus();
}
Старый 16.07.2009, 10:52   #5  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Регистрация: 23.10.2008
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
2) при клике мышкой на грид:
X++:
public boolean selectControl(FormControl _control) // метод формы
{
    boolean ret;

    if (_control && _control.id() == grid.id())
        control.setFocus();
    else
        ret = super(_control);

    return ret;
}
этот код не даст срабатывать active у datasource, то бишь переходить со строки на строку. Надо его как-то искусственно заставить сработать...
Старый 16.07.2009, 12:07   #6  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Простите, что ничегоне отвечал - поменял почту и антиспам не пропускал письма с аксфорума
Да, приведенный код Eldar9x не подойдет. Глючит так, как написал vanokh. Ладно, будем отбиваться отпользователей не популярными методами
Старый 16.07.2009, 13:23   #7  
ivas is offline
ivas
Участник
Аватар для ivas
 
252 / 68 (3) ++++
Регистрация: 22.12.2005
вы же сами всё написали)
"при активации таба, при открытии формы, при клике мышкой на грид"
в соответствующих методах этих контролов напишите НужныйКонтрол.setFocus();
или я чегото не понимаю?)

зы эльдар все правильно вам написал...
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Старый 16.07.2009, 13:53   #8  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
Нужно чтобы при клике мышкой на грид активировалось это поле и вылазил лукап на нем. Какой метод на гриде лучше перекрыть? После заполнения поля на грид нада потом вернуться.

Последний раз редактировалось Sada; 16.07.2009 в 14:34.
Старый 16.07.2009, 15:28   #9  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
Прямо ФортБаяр какой-то
Старый 16.07.2009, 15:41   #10  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
В условиях жосткого кризиса пользователи все меньше хотят делать что либо руками. Принято волевое мужское решение послать всех в леса на заработки. Тема закрыта. Друзья, Всем спасибо!
Теги
контрол, курсор

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как создать контрол ActiveX на форме класса наследника от RunBase? ski DAX: Программирование 1 22.06.2009 21:40
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
Установить курсор на форме Eldar9x DAX: Программирование 2 19.04.2007 14:18
Как поставить курсор на форме на требуемую строку? NetBus DAX: Программирование 5 09.11.2005 15:22
Позиционирование курсора на конкретной записи в DataSource на форме Anton Sk. DAX: База знаний и проекты 1 19.07.2004 17:14

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

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

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