Kalender nur mit einem Tag Auswahl ausstatten

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von HenryV.

    Kalender nur mit einem Tag Auswahl ausstatten

    Moin!

    ich noch einmal ...

    Für die Auswahl eines Datum habe ich ein System.Windows.Forms.MonthCalendar eingebaut.

    Über folgenden Code wollte ich nur die Auswahl von einem Tag zulassen.

    VB.NET-Quellcode

    1. With cal_herstellung
    2. .MaxDate = Now
    3. .MaxSelectionCount = 1
    4. End With


    Aber wenn ich über die Jahrespfeile ein anderes Jahr ansteuer, dann wird immer ein Bereich (Range) aufgezogen.



    Kann man dieses irgendwie unterbinden?

    Gruß Jan
    Das Problem ist, das beim runter-klicken und beim hoch-klicken nur das Startdatum der Selektion geändert wird.
    Workaround: Im DateChanged-Event des MonthCalendars das Enddatum der Selektion neu setzen.

    VB.NET-Quellcode

    1. Private Sub MonthCalendar1_DateChanged(sender As Object, e As Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
    2. Dim mc As MonthCalendar = DirectCast(sender, MonthCalendar)
    3. If (mc.SelectionEnd - mc.SelectionStart).Days > mc.MaxSelectionCount Then
    4. mc.SelectionEnd = mc.SelectionStart.AddDays(mc.MaxSelectionCount - 1)
    5. End If
    6. End Sub