Legen Sie den DateTimePicker-Wert auf null fest

9

Ich entwickle eine WinForms-Benutzeroberfläche mit zwei DateTimePicker -Steuerelementen. Zunächst möchte ich den Wert der Steuerelemente auf null festlegen, bis ein Benutzer ein Datum auswählt. Wenn der Benutzer kein Datum auswählt, übergibt er einen Wert von null an die Datenbank.

Standardmäßig wird das aktuelle Datum verwendet.

Könnten Sie bitte etwas vorschlagen oder einen Code anhängen, der mir hilft?

Ich habe versucht, die Eigenschaft MinDate einzustellen, aber es funktioniert nicht.

Der Code ist in C # .Net.

Danke, Manali.

    
Manali 10.05.2011, 09:05
quelle

8 Antworten

13

Ich denke, die beste Lösung besteht darin, das integrierte Kontrollkästchen zu verwenden, das dem Benutzer mitteilt, ob ein Wert angegeben ist oder nicht.

Legen Sie die Steuerelementeigenschaft ShowCheckBox = true

fest

Wenn Sie den Wert an ihn binden, machen Sie etwas wie

%Vor%

Wenn Sie den Wert zurücklesen, überprüfen Sie die Eigenschaft Checked .

Wenn Ihnen der angezeigte Wert nicht gefällt, können Sie ihn mit den anderen Vorschlägen kombinieren.

%Vor%     
Zyo 11.01.2013 12:50
quelle
8

Ich weiß, dass es sich um einen älteren Beitrag handelt, aber andere finden das vielleicht noch nützlich. Es ist ziemlich elegant und prägnant. Ich benutzte dies mit einem .Net 4.0 DateTimePicker, aber frühere Versionen sollten mit minimaler Optimierung funktionieren. Es nutzt MinDate und Checked.

%Vor%     
K Kimble 13.11.2012 16:26
quelle
2

Um den Nullwert in DateTimePicker control anzuzeigen, nehmen Sie die folgenden Änderungen in der Designer.cs -Datei vor:

%Vor%

Wenn der Benutzer ein Datum auswählt, geben Sie die Eigenschaft ValueChanged des Steuerelements ein und erstellen Sie das Format entsprechend Ihren Anforderungen. Dies zeigt das Datum im Steuerelement an.

Bei der obigen Anzeige wird das Steuerelement in der Benutzeroberfläche als leer angezeigt, der Standardwert ist jedoch immer noch das aktuelle Datum.

Wenn Sie den Wert als Null oder als leere Zeichenfolge festlegen / initialisieren möchten:

  1. deklariert eine temporäre Stringvariable say temp
  2. temp = DateTimePicker.CustomFormat.ToString();
  3. Überprüfen Sie, ob temp eine leere Zeichenfolge ist. Wenn das so ist, wie du willst.

Dies ist die einfachste Problemumgehung, die ich gefunden habe.

    
Manali 11.05.2011 07:18
quelle
1

Möglicherweise müssen Sie ein UserControl mit der Appearance einer TextBox erstellen, und wenn der Benutzer auf eine Calendar Show klickt, wenn Sie ein Date auswählen, legen Sie es auf die TextBox fest. Es erlaubt Nullwerte.

Der DateTimePicker erlaubt kein Null.

    
JTorrecilla 10.05.2011 09:19
quelle
1

Ich hoffe, das sollte Ihnen helfen Link1 Um im Auswahlfeld leer anzuzeigen

und auch das Link2

    
V4Vendetta 10.05.2011 09:26
quelle
1

Nehmen wir an, dtpStartDate ist Ihr DateTimePicker-Steuerelement.

Schreiben Sie diesen Code in Page_Load -

%Vor%

Schreiben Sie diesen Code im Value_Changed-Ereignis -

%Vor%

hier gewählt "kurz" als Format. Sie können "Long" und andere verfügbare Optionen auswählen.

    
Bhaskar Jain 22.12.2015 10:12
quelle
0

Dies ist der Code eines nullbaren Datetime-Pickers, den ich verwende:

%Vor%     
Theo Verweij 14.09.2016 15:26
quelle
-1
%Vor%     
Sameer Khan 30.04.2015 19:25
quelle

Tags und Links