using PutincevLibrary.Exceptions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PutincevLibrary { public partial class DateTimePickerControl : UserControl { public DateTimePickerControl() { InitializeComponent(); } private DateTime? minValue; private DateTime? maxValue; public event EventHandler? _valueChanged; public DateTime? MinValue { get { return minValue; } set { minValue = value; } } public DateTime? MaxValue { get { return maxValue; } set { maxValue = value; } } public DateTime? SelectedValue { get { if (!minValue.HasValue || !maxValue.HasValue) { throw new RangeNullException("Диапозон не был задан"); } else if (dateTimePicker.Value < minValue || dateTimePicker.Value > maxValue) { throw new WrongRangeException("Значение не попадает в диапазон"); } return dateTimePicker.Value; } set { if (!minValue.HasValue || !maxValue.HasValue) { return; } if (value < minValue || value > maxValue) { return; } dateTimePicker.Value = value.Value; } } public event EventHandler ValueChanged { add { _valueChanged += value; } remove { _valueChanged -= value; } } private void DateTimePicker_ValueChanged(object sender, EventArgs e) { _valueChanged?.Invoke(this, e); } } }