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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.10.2008, 18:12   #1  
SorNick is offline
SorNick
Участник
 
5 / 10 (1) +
Регистрация: 03.10.2008
? Переход по полям грида с помощью стрелочек на клавиатуре
Dynamics AX 4.0

Доброго всем время суток. Подскажите, пожалуйста, по следующему вопросу.
Мне надо реализовать переход по полям грида с помощью стрелочек на клавиатуре.
Я это сделал перекрыв метод task на форме:

X++:
public int task(int _taskId)
{
    #define.TaskLeft(1283)   // Налево
    #define.TaskRight(1284) // Направо
    int ret;
    int num;

    switch ( _taskId)
    {
        case #TaskRight:
            this.design().control(element.selectedControl().id()+1).setFocus();
            break;
        case #TaskLeft:
            this.design().control(element.selectedControl().id()-1).setFocus();
            break;
        default:
             ret = super(_taskId);
             break;
    }
    return ret;
}
Проблема: хотелось бы оставить возможность перемещаться стрелками по тексту внутри контролов (полей). Т.е. если курсор позиционируется на строковое поле, передвигаемся с помощью стрелок в конец/начало строки и только после достижения конца/начала перепрыгиваем на следующий/предыдущий контрол (поле) грида.

Вопросы:
- Как понять в каком месте (позиция) конкретного контрола находиться курсор?
- М.б. эту задачу можно решить другим способом?
Старый 03.10.2008, 18:51   #2  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
М.б. эту задачу можно решить другим способом?
Стандартные горячие клавиши работают:
перемещение по полям вперёд/назад, по закладкам, по форме и проч.

Также обратите внимание что на кнопочках буковки стоят - это тоже горячие клавиши.
Старый 03.10.2008, 19:09   #3  
SorNick is offline
SorNick
Участник
 
5 / 10 (1) +
Регистрация: 03.10.2008
Цитата:
Сообщение от Vals Посмотреть сообщение
Стандартные горячие клавиши работают:
Tab и Shift+Tab - это здорово,
но задача именно на перход стрелочками, а наче не было бы вопроса как оставить возможность передвигаться стрелочками по символам в поле.
Старый 03.10.2008, 20:35   #4  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Цитата:
передвигаемся с помощью стрелок в конец/начало строки
А если строка длинная? Надоест ведь ждать пока до конца добежит.
Может сделать:
  • Shift или Alt или Ctrl + стрелки - бегать по контролам
  • стрелки - бегать как бегало
Балуете вы пользователей
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 03.10.2008, 22:39   #5  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от SorNick Посмотреть сообщение
Tab и Shift+Tab - это здорово,
но задача именно на перход стрелочками, а наче не было бы вопроса как оставить возможность передвигаться стрелочками по символам в поле.
Сильно. Это только в одной форме или во всех предполагается такая фича? Если во всех, то это лучше делать уже за пределами AX.
А свой обработчик на кнопку Reset они ещё не попросили повесить?
__________________
Михаил Андреев
https://www.amand.ru
За это сообщение автора поблагодарили: longson (1).
Старый 06.10.2008, 11:39   #6  
SorNick is offline
SorNick
Участник
 
5 / 10 (1) +
Регистрация: 03.10.2008
Выходит, что понять в каком месте (позиция) конкретного контрола находиться курсор нет возможности?!

Пожалуй, "Shift или Alt или Ctrl + стрелки" будет компромисом...

На одной или всех формах - хороший вопрос. Есть ли возможность реализовать такой обработчик для всех форм (не переопределением метода task на каждой форме)?
Старый 06.10.2008, 11:58   #7  
Red Stranger is offline
Red Stranger
Участник
 
102 / 19 (1) ++
Регистрация: 01.04.2005
Цитата:
Сообщение от SorNick Посмотреть сообщение
Есть ли возможность реализовать такой обработчик для всех форм (не переопределением метода task на каждой форме)?
Можно.
Прекройте метод task() на классе SysSetupFormRun.
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
BackGround для цели грида ... Rimantas DAX: Программирование 14 22.02.2014 14:03
Данные и метаданные грида... PODOL DAX: Программирование 8 21.07.2006 14:20
Дисплей метод таблицы который вызывается из ГРИДА 3oppo DAX: Программирование 10 23.05.2006 06:47
Сортировка по полям подчиненного Датасурса Michael Skurlatov DAX: Программирование 3 15.04.2004 19:24
Сколько раз вызывается DataMethod поля грида при инициализации этого грида? storer DAX: Программирование 2 18.11.2003 14:03

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

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

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