Я хотел бы спросить, как создать пользовательский EventArg для существующего обработчика событий.C# NumericUpDown.OnValueChanged, как он был изменен?
Позволяет сказать, что у меня есть NumericUpDown numericUpDown
управление, и я хочу обработчик для его OnValueChanged
события. Двойной щелчок на ValueChanged
в визуальной студии делает фрагмент кода, как этот
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
@APerson Если бы у меня было больше элементов управления этого типа с использованием одного обработчика событий, мне пришлось бы хранить все возможные предыдущие значения в течение всего времени выполнения. – Zereges
Нет встроенного хранилища предыдущего содержимого. Если вам нужно отслеживать это, чтобы вычислить изменения значений, вам нужно будет сохранить их самостоятельно. –