首页 > 解决方案 > C# datetimepicker 如果等于今天然后勾选复选框,否则不选中/取消选中

问题描述

我试图有一个复选框 ( notTodayCheckBox),如果 datetimepicker ( DateTimePicker) 选择了今天,则不​​选中它,如果选择不是今天,则选中它。

如果所选日期不是今天,我当前的代码会勾选该框,但如果我将其更改回今天,该框不会取消选中。

当前代码:

private void DateTimePicker_ValueChanged(object sender, EventArgs e)
{
     DateTime check;
     if (DateTime.TryParse(dateTimePicker.Text, out check) && check != DateTime.Now)
     {
          notTodayCheckBox.Checked = true;
     }
     else if (DateTime.TryParse(dateTimePicker.Text, out check) && check == DateTime.Now)
     {
          notTodayCheckBox.Checked = false;
     }
}

标签: c#datetimeif-statementdatetimepicker

解决方案


DateTime.Now有一个时间元素,也许你的日期选择器设置在不同的时间,即使一秒钟也会使它们不相等。

如果您只是在约会之后而不关心时间。

转换为check_DateTime.NowShortDateString()

它会将两者都视为string格式mm/dd/yyyy

check.ToShortDateString() == DateTime.Now.ToShortDateString()

或根据René Vogt

check.Date == DateTime.Today或者DateTime.Now.Date 两者都将返回DateTime,时间设置为12:00:00AM


推荐阅读