Datetime: Wie werde ich behandeln, wenn der Benutzer geklickt hat / die gewählte Datum im Popup-Kalender oder nicht?

StackOverflow https://stackoverflow.com/questions/1426265

  •  07-07-2019
  •  | 
  •  

Frage

bemerkte ich, dass C # 's Datetimepicker das Datum automatisch ändert, wenn ich Monat oder Jahr bin zu ändern. Also, was ich tat, ist das Value außer Kraft zu setzen, und es wird nur ausgelöst, wenn das CloseUp Ereignis ausgelöst wird.

Das Problem ist jetzt, ich ein Ereignis benötigen, wenn der Benutzer Datum im Kalender tatsächlich ausgewählt oder klickt der Benutzer außerhalb der Kontrolle.

Können Sie mir dabei helfen? Danke:)

War es hilfreich?

Lösung

In einer abgeleiteten Klasse, die überschriebenen OnValueChanged Methode für mich gut funktioniert.

public class MyDateTimePicker : DateTimePicker
{
    // ... some stuff

    protected override void OnValueChanged(EventArgs eventargs)
    {
        System.Diagnostics.Debug.Write("Clicked -  ");
        System.Diagnostics.Debug.WriteLine(this.Value);
        base.OnValueChanged(eventargs);
    }

    protected override void OnCloseUp(EventArgs eventargs)
    {
        System.Diagnostics.Debug.Write("Closed -  ");
        System.Diagnostics.Debug.WriteLine(this.Value);
        base.OnCloseUp(eventargs);
    }

    // some more stuff ...
}

Andere Tipps

In einer abgeleiteten Klasse, die überschriebenen OnCloseUp Methode funktioniert, weil, wenn Sie die Datetime-Steuerung zurückgesetzt, das ValueChange Ereignis wird nicht ausgelöst, so dass das CloseUp Ereignis ist praktisch.

void ProductionDateSchdl_CloseUp(object sender, EventArgs e)
{
    this.ProductionDateSchdl.CustomFormat = "MM/dd/yyyy";
    ProductionDate = Convert.ToDateTime(this.ProductionDateSchdl.Value);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top