Кому это тоже мешает вот решение :
в классе SysSetupFormRun описываем переменную :
X++:
// This is a framework class. Customizing this class may cause problems with future upgrades to the software.
public class SysSetupFormRun extends FormRun
{
SysWorkflowFormControls workflowControls;
// <GEEU>
// Event listeners list
List listeners_W;
// </GEEU>
// не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
int Gridhwnd;
в этом же классе перекрываем метод selectControl и прописываем :
X++:
public boolean selectControl(FormControl _control)
{
boolean ret;
#WinAPI;
ret = super(_control);
// не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
if (_control &&
_control.owner().name() != identifierstr(TemporaryFormName))
{
switch (_control.handle())
{
case classnum(FormGridControl):
Gridhwnd = _control.hWnd();
break;
case classnum(FormDateControl):
case classnum(FormTimeControl):
case classnum(FormDateTimeControl):
// не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
this.installMessageProc(#WM_MOUSEWHEEL, _control.hWnd(), "catchMessage");
break;
default:
break;
}
}
return ret;
}
и здесь же в этом классе создаем метод :
X++:
void catchMessage(int _hwnd, int _message, int _wParam, int _lParam, int _px, int _py)
{
#WinAPI
;
// не работает прокрутка колесом мыши в gride стоя на контролах c датами и временем
if (_message == #WM_MOUSEWHEEL)
{
if (_wParam < 0)
WinAPI::SendMessageEx(Gridhwnd, #WM_VSCROLL, 1, 1);
else
WinAPI::SendMessageEx(Gridhwnd, #WM_VSCROLL, 0, 1);
}
}
Ну и не забудьте описать переменную в макросе WinApi :
X++:
#define.WM_MOUSEWHEEL (0x020A)
#define.WM_VSCROLL (0x0115) // эта вроде есть
Да, но все-таки контрол с типом DateTime победить не удалось. Потому что, он вообще не реагирует ни на какие события. Вообще такой странный контрол. В принципе, для нас это не критично - в основном везде просто даты. Но если у кого есть мысли будет не плохо.
До кучи кину ссылку в ветку про SysSetupFormRun.