Je voudrais savoir comment créer des EventArgs personnalisés pour un gestionnaire d'événements existant.C# NumericUpDown.OnValueChanged, comment cela a-t-il été changé?
Disons que j'ai le contrôle NumericUpDown numericUpDown
et que je veux un gestionnaire pour son événement OnValueChanged
. Un double-clic pour ValueChanged
en studio visuel fait snippet comme celui-ci
private void numericUpDown_ValueChanged(object sender, EventArgs e)
{
}
Cependant, je voudrais savoir comment il a été changé (comme +5, -4,7), mais EventArgs
plaine n'a pas ces informations. Peut-être Decimal change = Value - Decimal.Parse(Text)
ferait l'affaire (à cause du changement de texte retardé), mais c'est moche et peut ne pas fonctionner à chaque fois.
Je suppose que je devrais faire mes propres EventArgs comme celui-ci
class ValueChangedEventArgs : EventArgs
{
public Decimal Change { get; set; }
}
et en quelque sorte remplacer NumericUpDown.OnValueChanged
événement pour générer mes EventArgs avec l'information appropriée.
Pourriez-vous simplement stocker la valeur précédente du contrôle, puis la comparer à la valeur actuelle dans le gestionnaire d'événements? – APerson
@APerson Si j'avais plus de contrôles de ce type en utilisant le même gestionnaire d'événements, je devrais stocker toutes les valeurs précédentes possibles pendant l'exécution complète. – Zereges
Il n'y a pas de stockage intégré du contenu précédent. Si vous avez besoin de suivre cela pour calculer les changements de valeur, vous devrez le stocker vous-même. –