У меня есть 3 NumericUpDown
элементов в моей форме. Эти элементы синхронизируются по их сумме. Например, сумма составляет 9 значений элементов 3,3,3, а приращение равно 2. Когда пользователь меняет первый элемент с 3 до 5, мы должны получить 5,2,2.Событие для NumericUpDown для взаимодействия пользователя
Для синхронизации я пытался использовать события ValueChanged
и VisibleChanged
, но они работают, когда у нас есть программная модификация или взаимодействие с пользователем. Я использовал этот метод для каждого элемента, но для этого события этот метод снова начинает меняться, когда значения результата изменяются в другом.
private void numericUpDown1Change(object sender, EventArgs e)
{
int oldValue = Sum - (int)numericUpDown2.Value - (int)numericUpDown3.Value;
int average;
if ((int)numericUpDown1.Value - oldValue > 0)
{
average = ((int)numericUpDown1.Value - oldValue)/2;
numericUpDown2.Value = numericUpDown2.Value - average;
numericUpDown3.Value = numericUpDown3.Value - average;
}
else
{
average = (oldValue - (int)numericUpDown1.Value)/2;
numericUpDown2.Value = numericUpDown2.Value + average;
numericUpDown3.Value = numericUpDown3.Value + average;
}
}
Я хочу использовать событие, что работало только тогда, когда пользователь нажимает кнопку вверх или вниз, или пользователем ввода нового значения.
Какое событие я должен выбрать для этого?
Некоторый код и ваша фактическая проблема помогут. –