none
C# Kalender einfärben wenn ein Termin ist (Visual Studio) RRS feed

  • Allgemeine Diskussion

  • Guten Tag,

    Ich habe ein Form und darin ein normales Kalender Tool (Visual Studio) eingefügt.

    Zusätzlich hab ich eine Datenbank mit Reservationen (Anreise und Abreisedatum). Der Kalender soll zwischen Anreise und ABreisedatum bunt eingefärbt werden und beim Klick auf dieses Datum eine Messagebox aufgehen. 

    Ist das irgendwie möglich?

    Liebe Grüße 

    Carina

    Mittwoch, 21. Mai 2014 14:35

Alle Antworten

  • Hallo,
    ich vermute mal, das du das MonthCalendar-Control meinst. Mit dem Steuerelement hast du nicht all zu viele Freiheiten. Die einzige Möglich, die ich sehe ist die BoldedDates-Eigenschaft. Dort kannst du mehrere Tage angeben, die fett markiert werden:

    monthCalendar1.BoldedDates = new DateTime[] 
    {
        DateTime.Now.Add(TimeSpan.FromDays(1)), 
        DateTime.Now.Add(TimeSpan.FromDays(2)), 
        DateTime.Now.Add(TimeSpan.FromDays(3))
    };

    Wenn neue Tage hinzukommen, musst du die alten übernehmen und die Eigenschaft neu zuweisen.

    Wenn man auf einen Tag klickt, wird die Auswahl geändert. Diese neue Auswahl kannst du gegen das BoldedDates-Array prüfen:

    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e){
      if (monthCalendar1.BoldedDates.Contains(monthCalendar1.SelectionStart))
      {
          MessageBox.Show("Der Tag ist bereits belegt.");
      }
    }

    Wenn es um einen markierten Bereich geht, musst du jeden Tag des Bereichs abprüfen:
    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
    {
        foreach (var date in monthCalendar1.BoldedDates)
            if (monthCalendar1.SelectionStart <= date && monthCalendar1.SelectionEnd >= date)
            {
                MessageBox.Show("Der ausgewählte Bereich enthält einen belegten Tag.");
                return;//zurück kehren, da bereits ein Tag gefunden wurde
            }
    }



    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Mittwoch, 21. Mai 2014 15:52
    Moderator