既存のイベント ハンドラーのカスタム EventArgs を作成する方法をお聞きしたいと思います。
私がコントロールを持っていて、そのイベントNumericUpDown numericUpDown
のハンドラーが必要だとしましょう。OnValueChanged
ビジュアルスタジオでダブルクリックするとValueChanged
、このようなスニペットが作成されます
private void numericUpDown_ValueChanged(object sender, EventArgs e)
{
}
ただし、どのように変更されたのか(+5、-4.7など)を知りたいのですが、plainEventArgs
にはこの情報がありません。(テキストの変更が遅れるため) うまくいくかもしれDecimal change = Value - Decimal.Parse(Text)
ませんが、それは醜い方法であり、毎回うまくいくとは限りません。
このように独自の EventArgs を作成する必要があると思います
class ValueChangedEventArgs : EventArgs
{
public Decimal Change { get; set; }
}
そして、どういうわけかNumericUpDown.OnValueChanged
イベントをオーバーライドして、適切な情報で EventArgs を生成します。