Показать сообщение отдельно
Старый 19.05.2006, 18:13   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Может это не ваша ситуация

На форме используется один буфер для поиска по AutoSearch. Этот буфер сбрасывается при нажатии на управляющие кнопки или при смене фокуса контрола, по которому идет поиск.
Если же выбирать закладки при помощи мыши, то этот буфер не сбрасывается и при попытке начать поиск в новом датасоурсе на самом деле ищется не вновь набираемый текст, а добавляется к уже записанному в буфере.
Обойти этот эффект можно нажатием на управляющие кнопки (стрелки) или переключением с помощью CTRL+TAB. Можно так же программным способом при помощи WinApi. Вот пример для этой формы
X++:
void tabChanged(int _from, int _to)
{
    #define.EM_SETSEL(0x00B1)
    #define.VK_RIGHT(39)
    #winapi
    ;
    super(_from, _to);

    switch (_to)
    {
        case 1:
            element.selectMode(element.control(Control::tmpLedgerTable_AccountNum));
            winapi::sendMessageEx(element.control(Control::tmpLedgerTable_AccountNum).hWnd(), #WM_KEYDOWN, #VK_RIGHT, 0);
            winapi::sendMessageEx(element.control(Control::tmpLedgerTable_AccountNum).hWnd(), #EM_SETSEL, 0, -1);
            break;
        case 2:
            element.selectMode(element.control(Control::LedgerTableAccountType_AccountNum));
            winapi::sendMessageEx(element.control(Control::LedgerTableAccountType_AccountNum).hWnd(), #WM_KEYDOWN, #VK_RIGHT, 0);
            winapi::sendMessageEx(element.control(Control::LedgerTableAccountType_AccountNum).hWnd(), #EM_SETSEL, 0, -1);
            break;
    }

}
__________________
Axapta v.3.0 sp5 kr2