2012-04-12 18 views
2

Ich habe ein ValueChanged-Ereignis, wo ich Daten überprüfen und eine Nachricht an den Benutzer anzeigen und den Wert des DateTimePicker auf einen anderen Wert festlegen. Dies ist das Ereignis:ValueChanged-Ereignis in Windows XP

Dies funktioniert einwandfrei in Windows 7, aber es zeigt das Meldungsfeld zweimal in Windows XP. Wie kann ich es reparieren?

+0

Haben Sie .NET 2.0 auf Ihrer Win 7-Box installiert oder läuft Ihre Anwendung unter .NET 4? –

+0

auf Windows7 Ich benutze .NET Framework 3.5 gleiche ist auf XP installiert. Ich benutze Visual Studio 2010 für die Entwicklung. – Awadhendra

Antwort

0

nur schmutzig, wenn Sie nicht wollen, viel Mühe aufwenden :)

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; 
     } 
    } 
} 
+0

dieser Code funktioniert nicht. Das Problem ist immer noch gleich, – Awadhendra

0

Sie darüber gehen in die falsche Richtung. Die DateTimePicker-Klasse verfügt über die MaxDate- und MinDate-Eigenschaften, um diese zu behandeln. Setzen Sie diese einfach in Ihrem Designer oder zur Laufzeit, wenn das Formular geladen wird oder wenn es sinnvoll ist, dann müssen Sie sich keine Gedanken über das Ereignis machen, niemand kann ein ungültiges Datum auswählen.