C# windows XP中的ValueChanged事件

C# windows XP中的ValueChanged事件,c#,C#,我有一个ValueChanged事件,我检查日期并向用户显示消息,我将DateTimePicker的值设置为另一个值。这是一个事件: private void dtpStartDate_ValueChanged(object sender, EventArgs e) { if (frmDate.Value < this.minDate) { MessageBox.Show("Date not found"); frmDate.Value =

我有一个ValueChanged事件,我检查日期并向用户显示消息,我将DateTimePicker的值设置为另一个值。这是一个事件:

private void dtpStartDate_ValueChanged(object sender, EventArgs e)
{
    if (frmDate.Value < this.minDate)
    {
        MessageBox.Show("Date not found");
        frmDate.Value = previousValue;
        return;
    }
}
private void dtpStartDate\u值已更改(对象发送方,事件参数e)
{
if(frmDate.Value

这在Windows7中运行良好,但在WindowsXP中会显示两次消息框。我怎样才能修复它呢?

如果你不想花太多精力的话,那就是脏兮兮的:)

private DateTime\u lastDate;
私有无效dtpStartDate\u值已更改(对象发送方,事件参数e)
{
如果(_lastDate!=frmDate.Value){
_lastDate=frmDate.Value;
如果(_lastDate
如果你不想花太多的精力,那就脏兮兮的:)

private DateTime\u lastDate;
私有无效dtpStartDate\u值已更改(对象发送方,事件参数e)
{
如果(_lastDate!=frmDate.Value){
_lastDate=frmDate.Value;
如果(_lastDate
你走错了路。DateTimePicker类具有MaxDate和MinDate属性来处理该问题。只要在设计器中或在运行时加载表单或在任何有意义的时候进行设置,就不必担心事件,没有人能够选择无效日期。

这样做是错误的。DateTimePicker类具有MaxDate和MinDate属性来处理该问题。只要在设计器中或在运行时加载表单或在任何有意义的时候进行设置,就不必担心事件,没有人可以选择无效的日期。

Win 7设备上是否安装了.NET 2.0,或者它是否在.NET 4下运行应用程序?在Windows 7上,我使用的是.NET framework 3.5,xp上安装的也是同样的ins。我使用visual studio 2010进行开发。您的Win 7设备上是否安装了.NET 2.0,或者它是否在.NET 4下运行您的应用程序?在Windows 7上,我使用的是.NET framework 3.5,xp上也安装了相同的ins。我正在使用VisualStudio2010进行开发。
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;
        }
    }
}