在c#中使用datepickers验证的正确方法?(窗体)

Djo*_*olo 5 c# datepicker winforms

只是无法通过datepicker验证获得它.我有datepicker Fromdatepicker To,所以我想阻止用户做一些功夫和seting datepicker datepicker To更大,我碰到了一些问题但找不到答案,所以我尝试做最简单的我能想到的方式:

设置MaxDate属性datepicker 来自form_load事件

private void Form1_Load(object sender, EventArgs e)
{
     datepickerFrom.MaxDate = datepickerFrom.Value;
}
Run Code Online (Sandbox Code Playgroud)

然后为value_changed事件做同样的事情

private void datepickerFrom_ValueChanged(object sender, EventArgs e)
{
    datepickerFrom.MaxDate = datepickerFrom.Value;
}
Run Code Online (Sandbox Code Playgroud)

这很简单,只有几行代码,而且我只需要datepickerFrom_ValueChanged事件,但最近我尝试输入日期datepicker来选择它,然后一切都崩溃了.所以我找到了一些验证解决方案,而不是设置MaxDate属性,我试过这个.

private void dtFrom_ValueChanged(object sender, EventArgs e)
{        
    DateTime from = datepickerFrom.Value;
    DateTime to = datepickerTo.Value;
    int year= from.Year > to.Year ? to.Year : from.Year;
    int month = from.Month > to.Month ? to.Month : from.Month;
    int day = from.Day > to.Day ? to.Day : from.Day;
    int hour = from.Hour > to.Hour ? to.Hour : from.Hour;
    int minute = from.Minute > to.Minute ? to.Minute : from.Minute;
    int second = from.Second > to.Second ? to.Second : from.Second;
    //setting datepicker value
    datepickerFrom.Value = new DateTime(year, month, day, hour, minute, second);

}
Run Code Online (Sandbox Code Playgroud)

这样做很好,但感觉有点头疼,而且我也必须为datepickerTO_ValueChanged活动做这件事,确定我可以做一个method并且两次打电话,但仍然觉得有一种更好的方式,所以任何建议?

感谢您的时间