Entwickler-Ecke

WinForms - C# Kalendar DateTime auswählen


Hagato - Sa 24.05.14 19:28
Titel: C# Kalendar DateTime auswählen
Hallo!
Ich habe vor kurzem angefangen mir einen Terminplaner mit C# zu programmieren, jedoch häng ich am Anfang schon fest.
Ich habe ein MonthCalendar Objekt in meinem Form1, und wie kann ich mir merken welches Datum ich ausgewählt habe? Mit dem Event .DateSelected kann ich zwar zugreifen jedoch find ich nichts wie ich den Tag herausfinden kann den ich gerade ausgewählt habe und diesen dann abspeichern kann.
Danke bereits im Voraus.


Moderiert von user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Sa 24.05.2014 um 19:49


Christian S. - Sa 24.05.14 19:48

Hallo!

Die ausgewählten Daten im MonthCalendar stecken in den Eigenschaften SelectionStart und SelectionEnd (besser gesagt: sie stecken "dazwischen"). Wenn jeweils nur ein Tag ausgewählt werden soll, kannst Du MaxSelectionCount auf 1 setzen. Dann ist SelectionStart der ausgewählt Tag um 0:00h und SelectionEnd derselbe Tag um 23:59h.

Viele Grüße
Christian


Yankyy02 - Sa 24.05.14 19:59

Hallo Hagato,

wenn MaxSelectionCount deines MonthCalendar's auf 1 gesetzt ist kannst du im Event über DateRangeEventArgs das Datum abfragen was gerade ausgewählt wurde.

C#-Quelltext
1:
2:
3:
4:
        void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            DateTime selectedDate = e.Start;          
        }


Über selectedDate.DayOfWeek kannst du dann den Wochentag abfragen. Leider wird dir hier nur der englishe Wochentag angezeigt du kannst dir aber dein eigenes Enum dazu schreiben.

MfG


Ralf Jansen - Sa 24.05.14 20:06

Zitat:
Leider wird dir hier nur der englishe Wochentag angezeigt du kannst dir aber dein eigenes Enum dazu schreiben.


Es ist bereits alle da was man braucht.


C#-Quelltext
1:
DateTimeFormatInfo.CurrentInfo.GetDayName(selectedDate.DayOfWeek);                    


Hagato - Sa 24.05.14 20:07

Danke für die raschen Antworten :)
Hätt ich eigentlich selber drauf kommen können. :gruebel:


Christian S. - Sa 24.05.14 20:07

Eigentlich müsste doch selectedDate.ToString("dddd") eh das gewünschte Ergebnis liefern, oder? :-)


Yankyy02 - Sa 24.05.14 20:10

Hallo Ralf,
danke für die Richtigstellung dass wusste ich leider nicht.

MfG


Hagato - Sa 24.05.14 20:14

@Christian

.selectedDate gibt es beim month calendar so nicht, habs mit .SelectionStart.Date gelöst *räusper*


Christian S. - Sa 24.05.14 20:18

selectedDate ist offensichtlich der Platzhalter für das ausgewählte Datum, wie er von Yankyy02 eingeführt wurde. Wenn Du meine erste Antwort liest, wirst Du bemerken, dass mir durchaus bewusst ist, welche Eigenschaften da verwendet werden müssen.