// Static Create method called by the event tracker system internal static void RaiseEvents(IntPtr hwnd, int eventId, object idProp, int idObject, int idChild) { if (idObject != NativeMethods.OBJID_VSCROLL && idObject != NativeMethods.OBJID_HSCROLL) { WindowsDateTimePicker wdt = new WindowsDateTimePicker(hwnd, null, 0); if (eventId == NativeMethods.EventObjectNameChange) { if (idProp == ValuePattern.ValueProperty && idObject == NativeMethods.OBJID_WINDOW) { // The dispatch method expects EventObjectValueChange for the Value change property eventId = NativeMethods.EventObjectValueChange; idObject = NativeMethods.OBJID_CLIENT; } else { // The name of the control should never change return; } } wdt.DispatchEvents(eventId, idProp, idObject, idChild); } }