我正在尝试清理我今年早些时候所做的一些项目,我想在 2 个日期之间进行检查(两者都是使用日期选择器选择的)
我的支票很简单,提示一个消息错误,说最终日期必须大于开始日期我尝试使用选择日期更改,失去焦点,日历关闭,但没有任何成功。
我的代码是这样的
private void dtvencimento_LostFocus(object sender, RoutedEventArgs e)
{
DateTime SelDate = dtinicio.SelectedDate.Value;
DateTime SelDate2 = dtvencimento.SelectedDate.Value;
//int result = DateTime.Compare(SelDate, SelDate2);
if (SelDate > SelDate2)//if (result <= 0)
{
MessageBox.Show("Data do Vencimento tem de ser maior que data inicial", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
}
//else
//{
// dtvencimento.Style = null;
//}
}
dtvencimento 或 SelDate2 是比 dtinicio 或 Seldate 晚的日期
示例:当 dtinicio(SelDate) 为 2014 年 3 月 8 日且 dtvencimento 或 Seldate2 为 2014 年 2 月 10 日时,应发生MessageBox.Show(blablabla)
问题是事件甚至没有开始发生。
您是否尝试过像这样处理SelectedDateChanged
事件?
<DatePicker SelectedDateChanged="DatePicker_SelectedDateChanged" />
...
private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
{
DateTime SelDate = (DateTime)e.AddedItems[0];
DateTime SelDate2 = dtvencimento.SelectedDate.Value;
if (SelDate > SelDate2) // put a break point here and check value of SelDate2
{
MessageBox.Show("Data do Vencimento tem de ser maior que data inicial", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
}
}