private void SetRange(DateTime min, DateTime max) { if (base.IsHandleCreated) { int wParam = 0; System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY(); wParam |= 3; System.Windows.Forms.NativeMethods.SYSTEMTIME systemtime = DateTimeToSysTime(min); lParam.wYear1 = systemtime.wYear; lParam.wMonth1 = systemtime.wMonth; lParam.wDayOfWeek1 = systemtime.wDayOfWeek; lParam.wDay1 = systemtime.wDay; lParam.wHour1 = systemtime.wHour; lParam.wMinute1 = systemtime.wMinute; lParam.wSecond1 = systemtime.wSecond; lParam.wMilliseconds1 = systemtime.wMilliseconds; systemtime = DateTimeToSysTime(max); lParam.wYear2 = systemtime.wYear; lParam.wMonth2 = systemtime.wMonth; lParam.wDayOfWeek2 = systemtime.wDayOfWeek; lParam.wDay2 = systemtime.wDay; lParam.wHour2 = systemtime.wHour; lParam.wMinute2 = systemtime.wMinute; lParam.wSecond2 = systemtime.wSecond; lParam.wMilliseconds2 = systemtime.wMilliseconds; System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1004, wParam, lParam); } }
private void ResetValue() { this.value = DateTime.Now; this.userHasSetValue = false; if (base.IsHandleCreated) { int wParam = 0; System.Windows.Forms.NativeMethods.SYSTEMTIME lParam = DateTimeToSysTime(this.value); System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1002, wParam, lParam); } this.Checked = false; this.OnValueChanged(EventArgs.Empty); this.OnTextChanged(EventArgs.Empty); }
protected override void CreateHandle() { if (!base.RecreatingHandle) { IntPtr userCookie = System.Windows.Forms.UnsafeNativeMethods.ThemingScope.Activate(); try { System.Windows.Forms.NativeMethods.INITCOMMONCONTROLSEX icc = new System.Windows.Forms.NativeMethods.INITCOMMONCONTROLSEX { dwICC = 0x100 }; System.Windows.Forms.SafeNativeMethods.InitCommonControlsEx(icc); } finally { System.Windows.Forms.UnsafeNativeMethods.ThemingScope.Deactivate(userCookie); } } this.creationTime = DateTime.Now; base.CreateHandle(); if (this.userHasSetValue && this.validTime) { int wParam = 0; System.Windows.Forms.NativeMethods.SYSTEMTIME lParam = DateTimeToSysTime(this.Value); System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1002, wParam, lParam); } else if (!this.validTime) { int num2 = 1; System.Windows.Forms.NativeMethods.SYSTEMTIME systemtime2 = null; System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1002, num2, systemtime2); } if (this.format == DateTimePickerFormat.Custom) { base.SendMessage(System.Windows.Forms.NativeMethods.DTM_SETFORMAT, 0, this.customFormat); } this.UpdateUpDown(); this.SetAllControlColors(); this.SetControlCalendarFont(); this.SetRange(); }
public HitTestInfo HitTest(int x, int y) { System.Windows.Forms.NativeMethods.MCHITTESTINFO lParam = new System.Windows.Forms.NativeMethods.MCHITTESTINFO { pt_x = x, pt_y = y, cbSize = Marshal.SizeOf(typeof(System.Windows.Forms.NativeMethods.MCHITTESTINFO)) }; System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x100e, 0, lParam); HitArea hitArea = this.GetHitArea(lParam.uHit); if (HitTestInfo.HitAreaHasValidDateTime(hitArea)) { System.Windows.Forms.NativeMethods.SYSTEMTIME s = new System.Windows.Forms.NativeMethods.SYSTEMTIME { wYear = lParam.st_wYear, wMonth = lParam.st_wMonth, wDayOfWeek = lParam.st_wDayOfWeek, wDay = lParam.st_wDay, wHour = lParam.st_wHour, wMinute = lParam.st_wMinute, wSecond = lParam.st_wSecond, wMilliseconds = lParam.st_wMilliseconds }; return new HitTestInfo(new Point(lParam.pt_x, lParam.pt_y), hitArea, DateTimePicker.SysTimeToDateTime(s)); } return new HitTestInfo(new Point(lParam.pt_x, lParam.pt_y), hitArea); }
private System.Windows.Forms.SelectionRange GetMonthRange(int flag) { System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY lParam = new System.Windows.Forms.NativeMethods.SYSTEMTIMEARRAY(); System.Windows.Forms.SelectionRange range = new System.Windows.Forms.SelectionRange(); System.Windows.Forms.UnsafeNativeMethods.SendMessage(new HandleRef(this, base.Handle), 0x1007, flag, lParam); System.Windows.Forms.NativeMethods.SYSTEMTIME s = new System.Windows.Forms.NativeMethods.SYSTEMTIME { wYear = lParam.wYear1, wMonth = lParam.wMonth1, wDayOfWeek = lParam.wDayOfWeek1, wDay = lParam.wDay1 }; range.Start = DateTimePicker.SysTimeToDateTime(s); s.wYear = lParam.wYear2; s.wMonth = lParam.wMonth2; s.wDayOfWeek = lParam.wDayOfWeek2; s.wDay = lParam.wDay2; range.End = DateTimePicker.SysTimeToDateTime(s); return range; }
internal static DateTime SysTimeToDateTime(System.Windows.Forms.NativeMethods.SYSTEMTIME s) { return(new DateTime(s.wYear, s.wMonth, s.wDay, s.wHour, s.wMinute, s.wSecond)); }