2016-08-03 14 views
0

Im Versuch erkannt wurde das aktuelle Datum mit dem Datum ab dem Datum Zeit picker.The Steuerung zeigt das Datum wie diesezwei dates- String Vergleich nicht als gültiges Datetime

enter image description here

Im Vergleich des vergleichen zwei Tage, wie dies

DateTime dt1 = DateTime.Parse(dtInvoiceDate.Text); 
      DateTime dt2 = DateTime.Now; 
      if (dt2.Date > dt1.Date) 
      { 

       dgvGetData.Columns["Edit"].Visible = false; 
      } 

aber dies ist ein String werfen wurde nicht als gültige Datetime-Exception erkannt.

Wie kann ich das Datum in diesem kurzen Format analysieren und vergleichen.

+1

Können Sie keine andere Eigenschaft von dtInvoiceDate-Steuerelement als 'Text' lesen? Ist keine "Wert" -Eigenschaft mit Typ DateTime? (so können Sie Parsing vermeiden) –

+0

@GerardoGrignoli Welche Eigenschaft speziell? Es gibt keine Eigenschaft namens "Date" als solche. – techno

+0

Haben Sie "Value" ausprobiert? –

Antwort

2

Sie sollten die DateTime nicht analysieren. Die Datumsauswahlsteuerung muss Ihnen das Datum als DateTime liefern. Versuchen:

DateTime dt1 = dtInvoiceDate.Value; 
+0

Ich denke, dass MS könnte eine Eigenschaft namens DateTime anstelle von Value .. Es ist verwirrend ... – techno

+0

Als sie veröffentlicht Winforms, diese alten guten Tage, gab es wie ein Standard, dass jedes Steuerelement eine Value-Eigenschaft haben muss. Es ergibt Sinn für mich. Versuchen Sie, '.Text' so viel wie möglich zu vermeiden. –

+0

okay .... wird tun .. – techno

0

Wie Gerado angegeben, sollten Sie nicht Datumsauswahl analysieren, auch Sie Value Eigenschaft zu Ihrem DTP-Steuerelement hinzufügen könnte, die oft nützlich ist. Wenn der Benutzer die DateTime ändert, wird dieser Ereignishandler ausgeführt.

DateTime date = dateTimePickerCheck.Value; 
DateTime now = DateTime.Now; 
if (date.Date > now.Date) 
{ 
    //your code logic 
} 
Verwandte Themen