80 lines
1.5 KiB
C#
Raw Permalink Normal View History

2024-09-05 09:32:21 +04:00
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;
using COP.Exceptions;
namespace COP
{
2024-09-05 15:05:04 +04:00
public partial class UserDateTimePicker : UserControl
2024-09-05 09:32:21 +04:00
{
private DateTime? minValue;
private DateTime? maxValue;
public event EventHandler? _valueChanged;
2024-09-05 15:05:04 +04:00
public UserDateTimePicker()
2024-09-05 09:32:21 +04:00
{
InitializeComponent();
}
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 NoRangeException("Диапозон не был задан");
}
else if (dateTimePicker.Value < minValue ||
dateTimePicker.Value > maxValue)
{
2024-09-05 15:05:04 +04:00
throw new NotIncludedInRangeException("Selected value is out of range.");
}
2024-09-05 09:32:21 +04:00
return dateTimePicker.Value;
}
set
{
2024-09-05 15:25:41 +04:00
if (!minValue.HasValue || !maxValue.HasValue || value < minValue || value > maxValue)
2024-09-05 09:32:21 +04:00
{
2024-09-05 15:05:04 +04:00
return;
2024-09-05 15:25:41 +04:00
}
2024-09-05 09:32:21 +04:00
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);
}
}
}