This manager groups common logic for IDateTimePicker control. Do not use this object in working code - rather call CreateDateTimePicker in the appropriate control factory.
        ///<summary>
        /// Constructor for <see cref="DateTimePickerWin"/>
        ///</summary>
        ///<param name="controlFactory"></param>
        public DateTimePickerWin(IControlFactory controlFactory)
        {
            DateTimePickerManager.ValueGetter<DateTime> valueGetter = () => base.Value;
            DateTimePickerManager.ValueSetter<DateTime> valueSetter = delegate(DateTime value)
            {
                base.Value = value;
            };
            _manager = new DateTimePickerManager(controlFactory, this, valueGetter, valueSetter);
        	_manager.ValueChanged += (sender, args) => base.OnValueChanged(args);
			_manager.NullDisplayBoxCustomizationDelegate += NullDisplayBoxCustomization;
            this.SetGlobalDefaultFormat();
            this.ObserveGlobalUIHints();
        }
#pragma warning disable 1911
        ///<summary>
        /// Constructs the <see cref="DateTimePickerVWG"/>
        ///</summary>
        ///<param name="controlFactory"></param>
        public DateTimePickerVWG(IControlFactory controlFactory)
        {
            DateTimePickerManager.ValueGetter<DateTime> valueGetter = () => base.Value;

            DateTimePickerManager.ValueSetter<DateTime> valueSetter = delegate(DateTime value)
            {
                base.Value = value;
            };
            _manager = new DateTimePickerManager(controlFactory, this, valueGetter, valueSetter);
            //Note: by default the Checkbox is shown because the VWG DateTimePicker does not support representing the null state visually without it.
            this.ShowCheckBox = true;
            _manager.ChangeToNullMode();
            this.SetGlobalDefaultFormat();
            this.ObserveGlobalUIHints();
        }