AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 16.07.2009, 09:40   #1  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
Поставить курсор на контрол на форме
Добрый день, много уважаемые коллеги.
Ситуация: есть форма, на форме таб, на табе грид, под гридом группа полей. Все это один датасорс. У пользователей есть такой бзик. Хотят чтобы при клике на грид курсор автоматом вставал на одно из полей группы под гридом. Подскажите как это сделать. Единственное, что пришлов голову - этона активе сделать control.setfocus();. Но курсор встает на этот контрол только при открытии формы или при переходе между записями кнопками PageUp/PageDown. Что то я туплю. Как сделать, чтобы курсор ВСЕГДА вставал на этот контрол первым - при активации таба, при открытии формы, при клике мышкой на грид. Помогите...
Заранее спасибо!!
Old 16.07.2009, 09:45   #2  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
Нашол в WinApi::setCursorPos(). но что туда передавать и то ли это что мен нужно?
Old 16.07.2009, 10:06   #3  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Join Date: 23.10.2008
Quote:
Originally Posted by Sada View Post
Нашол в WinApi::setCursorPos(). но что туда передавать и то ли это что мен нужно?
setCursorPos - это, насколько я помню, чтобы ставить текстовый курсор на нужную позицию в текстовом контроле. А в данном случае нужен WinApi::setFocus(), по идее это то же самое, что и control.setFocus(). Осталось вставить в нужные обработчики событий - можно попробовать перекрыть gotFocus() на табе, на гриде, на форме и т.д.
Old 16.07.2009, 10:14   #4  
Eldar9x is offline
Eldar9x
MCTS
Eldar9x's Avatar
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Join Date: 29.09.2006
Location: Казань
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();
}
Old 16.07.2009, 10:52   #5  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Join Date: 23.10.2008
Quote:
Originally Posted by Eldar9x View Post
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, то бишь переходить со строки на строку. Надо его как-то искусственно заставить сработать...
Old 16.07.2009, 12:07   #6  
Sada is offline
Sada
Программатор
Sada's Avatar
 
1,450 / 153 (8) ++++++
Join Date: 29.03.2005
Location: Толи Барнаул, толи Москва
Простите, что ничегоне отвечал - поменял почту и антиспам не пропускал письма с аксфорума
Да, приведенный код Eldar9x не подойдет. Глючит так, как написал vanokh. Ладно, будем отбиваться отпользователей не популярными методами
Old 16.07.2009, 13:23   #7  
ivas is offline
ivas
Участник
ivas's Avatar
 
252 / 68 (3) ++++
Join Date: 22.12.2005
вы же сами всё написали)
"при активации таба, при открытии формы, при клике мышкой на грид"
в соответствующих методах этих контролов напишите НужныйКонтрол.setFocus();
или я чегото не понимаю?)

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

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

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Как создать контрол 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 04:34.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.