Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DateTimePicker abfragen ob Datum gesetzt ist

143 views
Skip to first unread message

Bernd Konle

unread,
Jun 6, 2010, 5:06:10 AM6/6/10
to
Hallo beisammen,

da ich absolut nicht weiterkomme und auch in Google nichts genaues
finde und noch ziemlich am Anfang von c#....

In meinem Formular ist ein DateTimePicker das ein Pflichtfeld ist für
ein Rechnungsdatum.

Wie kann ich abfragen ob ein Datum gesetzt wurde, bzw. ausgewählt?
Dachte eigentlich, wenn nichts ausgewählt wird, dann wird der
DefaultValue übernommen und in meine Tabelle eingetragen, klappt
leider nicht.

Danke schon mal im voraus.

Viele Grüße

Bernd

Frank Dzaebel

unread,
Jun 6, 2010, 7:19:45 AM6/6/10
to
Hallo Bernd,

> In meinem Formular ist ein DateTimePicker das ein Pflichtfeld ist für
> ein Rechnungsdatum.
> Wie kann ich abfragen ob ein Datum gesetzt wurde, bzw. ausgewählt?

Zum Beispiel, wenn Du das ValueChanged Ereignis behandelst.
Es kommt da etwas darauf an, ob Du den Anfangs-Wert über
DataBinding füllst und zu welcher Zeit. ValueChanged sollte in
Deinem Szenario dann als letztes abonniert werden.
Ggf. noch die Füllung des Wertes für den DTP mit (halbwegs)
reproduzierbarem Code posten.


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Bernd Konle

unread,
Jun 6, 2010, 11:36:34 AM6/6/10
to

Hallo Frank,

vielen Dank für die Antwort, aber wie gesagt, bin noch ziemlicher
Anfänger auf dem Gebiet und hab schon etlich ausprobiert.
Zudem weiss ich auch nicht genau wie ich das alles abfragen soll.

Habe z.B. folgendes eingegeben:

private void rechnungsdatumDateTimePicker_ValueChanged(object sender,
EventArgs e)
{
if (rechnungsdatumDateTimePicker.Value.Date == null)
{
MessageBox.Show("Bitte noch Rechnungsdatum
eingeben!");

}
}

aber funktioniert leider nicht :-(

Viele Grüße

Bernd

Bernd Konle

unread,
Jun 6, 2010, 11:58:38 AM6/6/10
to
> Bernd- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

.... ich hatte es auch so auch schon probiert:


private void rechnungsdatumDateTimePicker_ValueChanged(object sender,
EventArgs e)
{

if (rechnungsdatumDateTimePicker.ValueChanged = false)


{
MessageBox.Show("Bitte noch Rechnungsdatum
eingeben!");

}
}


aber ich komm einfach nicht drauf....

Frank Dzaebel

unread,
Jun 6, 2010, 12:06:57 PM6/6/10
to
Hallo Bernd,

> vielen Dank für die Antwort, aber wie gesagt, bin noch ziemlicher
> Anfänger auf dem Gebiet und hab schon etlich ausprobiert.

wie gesagt - ich müsste wissen mit welchen Methoden Du
den Wert des DateTimePicker's füllst. Vielleicht tust Du das ja
auch gar nicht, dann ist der Wert normal auf der aktuellen Uhrzeit/Datum
des aktuellen Tages (mal den Standard angenommen).


> if (rechnungsdatumDateTimePicker.Value.Date == null)

wenn er in das ValueChanged-Ereignis erreicht, dann
ist in dem Moment ja der Wert von ~jemand außerhalb
geändert worden. Dann könntest Du eine bool Variable setzen,
die signalisiert, ob das Datum gesetzt wurde.

Dann ggf. später - zum Beispiel im Form_Closing-Ereignis abfragen:

[Form.FormClosing-Ereignis (System.Windows.Forms)]
http://msdn.microsoft.com/de-de/library/system.windows.forms.form.formclosing.aspx

Auch könntest Du Dir den Value des DateTimePickers beim
Start auch abspeichern und dann im FormClosing auch
abfragen, ob der ungleich dem alten Wert (Datum) ist.
Wenn ungleich, fragst Du eben nochmal ab.

In professionellen Implementationen wird das meist über
DataBinding und Command (-Pattern/[Hilfs]-Klassen) gemacht,
oder allgemeiner eben das Thema Validierung:

[Beispiel-Validierung mit dem ErrorProvider]
http://dzaebel.net/ValidationExample.htm

also Richtung ErrorProvider etc.

Bernd Konle

unread,
Jun 6, 2010, 1:33:08 PM6/6/10
to
On 6 Jun., 18:06, "Frank Dzaebel" <P...@FranksSeite.de> wrote:
> Hallo Bernd,
>
> > vielen Dank für die Antwort, aber wie gesagt, bin noch ziemlicher
> > Anfänger auf dem Gebiet und hab schon etlich ausprobiert.
>
> wie gesagt - ich müsste wissen mit welchen Methoden Du
> den Wert des DateTimePicker's füllst. Vielleicht tust Du das ja
> auch gar nicht, dann ist der Wert normal auf der aktuellen Uhrzeit/Datum
> des aktuellen Tages (mal den Standard angenommen).
>
> > if (rechnungsdatumDateTimePicker.Value.Date == null)
>
> wenn er in das ValueChanged-Ereignis erreicht, dann
> ist in dem Moment ja der Wert von ~jemand außerhalb
> geändert worden. Dann könntest Du eine bool Variable setzen,
> die signalisiert, ob das Datum gesetzt wurde.
>
> Dann ggf. später - zum Beispiel im Form_Closing-Ereignis abfragen:
>
> [Form.FormClosing-Ereignis (System.Windows.Forms)]http://msdn.microsoft.com/de-de/library/system.windows.forms.form.for...

>
> Auch könntest Du Dir den Value des DateTimePickers beim
> Start auch abspeichern und dann im FormClosing auch
> abfragen, ob der ungleich dem alten Wert (Datum) ist.
> Wenn ungleich, fragst Du eben nochmal ab.
>
> In professionellen Implementationen wird das meist über
> DataBinding und Command (-Pattern/[Hilfs]-Klassen) gemacht,
> oder allgemeiner eben das Thema Validierung:
>
> [Beispiel-Validierung mit dem ErrorProvider]http://dzaebel.net/ValidationExample.htm
>
> also Richtung ErrorProvider etc.
>
> ciao Frank
> --
> Dipl.Inf. Frank Dzaebel [MCP/MVP C#]http://Dzaebel.NET

Hallo Frank,

vielen Dank!

Ok, ich werde mal kurz erläutern was ich gerade mache ;-).
Wie gesagt, ich bin noch ziemlich am Anfang und bring mir das gerade
selber bei, deshalb versteh ich evtl. nicht alles ganz was gemeint ist
und hol mal kurz aus über mein Vorhaben.
Da mir es leichter fällt mit dem Visual Studio zu arbeiten habe ich
folgendes vor und auch auch schon erstellt:

Ich habe mir ein typisiertes Dataset erstellt das alles in einer SQL-
Datenbank eingetragen wird.

Es soll ein Rechnungsprogramm geben, funktioniert auch alles, bis auf
die Fehlerabfragen.

Auf dieses Formular habe ich aus der Datenquelle des Dataset die
Tabelle für die Rechnung (ID, Kunde, Rechnungsdatum und
Ausführungsdatum) als Details und für die Rechnungsdetails(ID,
Artikel, Anzahl usw...) als GridView per Drag & Drop gezogen.

Für den DateTimePicker(Rechnungsdatum) habe ich eigentlich nur den
"Value" in den Eigenschaften festgelegt auf das heutige Datum.
Beim öffnen des Formulars wird auch das jetzige Datum angezeigt.
Wird im DateTimePicker aber nichts ausgewählt, bringt er mir die
ErrorMeldung " Rechnungsdatum darf nicht null sein" wenn ich
abspeichere (über den BindingNavigator oder per Button). Ist auch
meine Absicht und soll auch ein Pflichtfeld bleiben.

Diesen Fehler möchte ich einfach überprüfen ob ein Datum bereits schon
ausgewählt wurde.
Ursprünglich wollte ich es mit dem ErrorProvider machen, funktioniert
aber auch nicht. Habe ihn an die DataBinding geknüpft, aber geht
nichts. In meinem anderen Formular für die Kunden klappt der
ErrorProvider einwandfrei.

Für die Textboxen-Abfrage finde ich so einiges, deshalb dacht ich mir
ob das nicht auch für den DTP gibt, wie z.B. für die Textboxen wenn
kein Wert eingegeben wurde: .... if (textBox.Text.Length ==0)
{ messageBox........usw... }

Mir wäre das eigentlich sowieso lieber mit dem ErrorProvider, da es
mit der Textbox nervt, jedoch dachte ich dass es evtl. einfacher wäre.

Viele Grüße schon mal und hoffe es ist einigermassen Verständlich.

Bernd

Bernd Konle

unread,
Jun 6, 2010, 2:15:21 PM6/6/10
to
> Bernd- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

mhhh, was mir noch eingefallen ist, wenn der User kein Datum
eingegeben hat, dann soll da heutige Datum automatisch eingetragen
werden.
Aber wie kann ich den DefaultValue <DBnull> z.B. auf Today oder Now
setzen?
Das wäre meine Alternative.

Grüße

Bernd

Frank Dzaebel

unread,
Jun 8, 2010, 12:42:51 AM6/8/10
to
Hallo Bernd,

Dann ist evtl. ist folgendes etwas für Dich:

[DatetimePicker in datagridview]
http://social.msdn.microsoft.com/Forums/en/winformsdesigner/thread/7a0ea2d3-cbcb-49f7-85ca-03ed84aedc33

Bernd Konle

unread,
Jun 8, 2010, 1:04:42 AM6/8/10
to
On 8 Jun., 06:42, "Frank Dzaebel" <P...@FranksSeite.de> wrote:
> Hallo Bernd,
>
> Dann ist evtl. ist folgendes etwas für Dich:
>
> [DatetimePicker in datagridview]http://social.msdn.microsoft.com/Forums/en/winformsdesigner/thread/7a...

>
> ciao Frank
> --
> Dipl.Inf. Frank Dzaebel [MCP/MVP C#]http://Dzaebel.NET

Hallo Frank,

das sieht gut aus, super, danke dir!!

Viele Grüße
Bernd

Bernd Konle

unread,
Jun 18, 2010, 9:40:30 AM6/18/10
to
On 8 Jun., 07:04, Bernd Konle <csh...@konle.net> wrote:
> On 8 Jun., 06:42, "Frank Dzaebel" <P...@FranksSeite.de> wrote:
>
> > Hallo Bernd,
>
> > Dann ist evtl. ist folgendes etwas für Dich:
>
> > [DatetimePickerin datagridview]http://social.msdn.microsoft.com/Forums/en/winformsdesigner/thread/7a...

>
> > ciao Frank
> > --
> > Dipl.Inf. Frank Dzaebel [MCP/MVP C#]http://Dzaebel.NET
>
> Hallo Frank,
>
> das sieht gut aus, super, danke dir!!
>
> Viele Grüße
> Bernd

Hallo,

ich bekomm es leider nicht hin und mach es deshalb alles über eine
Masked Textbox.

Trotzdem vielen Dank noch!

Grüße

Bernd

0 new messages