我有一个ValueChanged事件,我正在检查日期并向用户显示一条消息,并将DateTimePicker的值设置为另一个值。这是事件:
private void dtpStartDate_ValueChanged(object sender, EventArgs e)
{
if (frmDate.Value < this.minDate)
{
MessageBox.Show("Date not found");
frmDate.Value = previousValue;
return;
}
}
这在Windows 7中运行良好,但在Windows XP中显示消息框两次。我该如何解决?
答案 0 :(得分:0)
如果你不想花太多精力,那就太脏了。)
private DateTime _lastDate;
private void dtpStartDate_ValueChanged(object sender, EventArgs e)
{
if (_lastDate != frmDate.Value) {
_lastDate = frmDate.Value;
if (_lastDate < this.minDate)
{
MessageBox.Show("Date not found");
frmDate.Value = previousValue;
return;
}
}
}
答案 1 :(得分:0)
你这是错误的方式。 DateTimePicker类具有MaxDate和MinDate属性来处理它。只需在设计器中或运行时在表单加载时或在有意义的时候设置它们,那么您根本不必担心事件,没有人能够选择无效的日期。