我用
SendMessage(dtpHwnd,DTM_SETSYSTEMTIME, GDT_VALID, stT);
改变一个DateTimePicker控件的值
看上去DateTimePicker的值已经改变了
可为啥我用DateTimePicker.Value取值的时候值没有变化还是改之前的值注:stT是我声明的SYSTEMTIME对象
    [StructLayout(LayoutKind.Sequential)]
    public class SYSTEMTIME
    {
        public ushort wYear;
        public ushort wMonth;
        public ushort wDayOfWeek;
        public ushort wDay;
        public ushort wHour;
        public ushort wMinute;
        public ushort wSecond;
        public ushort wMilliseconds;
    }

解决方案 »

  1.   

    还要触发一个DateTimePicker控件lostfocus,才能取得值。我以前碰到过类似的问题
      

  2.   

    SendMessage(dtpHwnd, WM_KILLFOCUS, XXXXXXXXXX, 0);
    SendMessage(dtpHwnd, DTM_SETSYSTEMTIME, GDT_VALID, stT);
    SendMessage(dtpHwnd, WM_SETFOCUS, XXXXXXXXXX, 0);这里面的那个XXXXXXXXXX是什么参数啊!
      

  3.   

    SendMessage(dtpHwnd,   WM_KILLFOCUS,   hwndGetFocus,   0); 
    SendMessage(dtpHwnd,   DTM_SETSYSTEMTIME,   GDT_VALID,   stT); 
    SendMessage(dtpHwnd,   WM_SETFOCUS,   hwndLoseFocus,   0); hwndGetFocus
    返回当前焦点窗口句柄,可以为空
    Handle to the window that receives the keyboard focus; can be NULL.
    hwndLoseFocus
    返回失去焦点窗口句柄,可以为空
    Handle to the window that has lost the keyboard focus. This parameter can be NULL