我正在尝试清理我今年早些时候制作的一个项目,我想在2天之间进行检查(两者都是使用日期选择器选择的)
我的检查很简单,发出错误消息说最后的日期必须大于开始日期 我尝试使用SelectedDateChanged,Lost Focus,Calender Closed但没有成功。
我的代码就是这个
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的日期
示例:当{dinicio(SelDate)是2014年3月8日且dtvencimento或Seldate2是2014年2月10日时,MessageBox.Show(blablabla)
应该出现
事情是事件甚至没有开始发生。
答案 0 :(得分:1)
您是否尝试过像这样处理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);
}
}