2

月または年を変更すると、C# の DateTimePicker が自動的に日付を変更していることに気付きました。だから私がしたことは、ValueChanged をオーバーライドすることであり、CloseUp イベントが発生したときにのみ発生します。

問題は、ユーザーがカレンダーで実際に日付を選択した場合、またはユーザーがコントロールの外側をクリックした場合にイベントが必要になることです。

これで私を助けてもらえますか?ありがとう :)

4

2 に答える 2

1

派生クラスではOnCloseUp、日時コントロールをリセットするとValueChangeイベントが発生しないため、オーバーライドされたメソッドが機能するため、CloseUpイベントが役立ちます。

void ProductionDateSchdl_CloseUp(object sender, EventArgs e)
{
    this.ProductionDateSchdl.CustomFormat = "MM/dd/yyyy";
    ProductionDate = Convert.ToDateTime(this.ProductionDateSchdl.Value);
}
于 2012-07-17T07:05:14.057 に答える
1

派生クラスでは、オーバーライドさOnValueChangedれたメソッドがうまく機能します。

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 ...
}
于 2009-09-15T11:20:04.090 に答える