我想問如何爲現有的事件處理程序製作自定義EventArgs。C#NumericUpDown.OnValueChanged,它是如何改變的?
可以說,我有NumericUpDown numericUpDown
控制,並且我想要處理它的OnValueChanged
事件。雙擊以ValueChanged
在Visual Studio使得網頁摘要
private void numericUpDown_ValueChanged(object sender, EventArgs e)
{
}
不過,我想知道它是如何改變(如+5,-4.7),但普通EventArgs
沒有這個信息。也許Decimal change = Value - Decimal.Parse(Text)
會做的伎倆(由於延遲文本更改),但這是醜陋的方式,可能無法每一次工作。
我想我應該讓我自己的EventArgs這樣
class ValueChangedEventArgs : EventArgs
{
public Decimal Change { get; set; }
}
然後以某種方式覆蓋NumericUpDown.OnValueChanged
事件產生我用正確的信息EventArgs的。
您可以只存儲控件的前一個值,然後將其與事件處理程序中的當前值進行比較? – APerson 2014-09-19 16:17:05
@APerson如果我使用相同的事件處理程序有更多的這種類型的控件,我將不得不在整個運行時存儲所有可能的先前值。 – Zereges 2014-09-19 16:22:19
以前的內容沒有內置存儲。如果您需要跟蹤計算價值變化,則需要自行存儲。 – 2014-09-19 16:24:08