У меня есть форма с несколькими элементами управления NumericUpDown, которую я хочу, чтобы они запускали функцию каждый раз, когда пользователь вводит в них данные.Я изменил события ValueChanged на TextChanged для всех из них, но только 4 из событий NUD.TextChanged работают, все остальные действуют как событие ValueChanged (даже несмотря на то, что я искал все решения, и нет никакого упоминания о ValueChangedСОВСЕМ).Я скопировал один из работающих элементов управления NUD и вставил его.Переименовал его, настроил события, и они просто не работают должным образом.
Они запускаются на TextChanged, но не проверяют значение.
Например: максимум 100, минимум 1, яввод 200, он остается равным 200, пока я не покину элемент управления, затем он устанавливает его обратно на 100;
На том, который работает нормально, как только я введу 2, и это приведет к переходу на 200, при возникновении события TextChanged оно становится равным 100.
Я проверил, что для каждого из них свойство "CausesValidation" установлено в значение true.
Я был на этом более 4часов сейчас, и это становится немного разочаровывающим ... до такой степени, что я думаю о воссоздании формы с нуля со всеми более чем 70 элементами управления ...
РЕДАКТИРОВАТЬ:
Только что нашелпроисходит то, что те, которые не работают должным образом, просто не ограничивают набор текста минимальными и максимальными значениями во время выполнения.
Я могу исправить это для каждого элемента управления, добавив его вTexМетод события tChanged:
private void NUD_ValueOfF_TextChanged(object sender, EventArgs e)
{
if (NUD_ValueOfF.Value > NUD_ValueOfF.Maximum)
NUD_ValueOfF.Value = NUD_ValueOfF.Maximum;
CalculateAll();
}
Но, как вы, вероятно, можете себе представить, это беспорядок и довольно неудобно делать это для более чем 30 NUD, все по одному.Кроме того, я хочу понять, почему он работает нормально для 4 из NUD и не работает для остальных, я просто не понимаю этого.Я сделал то же самое для всех них.Все остальные формы NUD работают нормально.Только те, кто в этой форме, не хотят работать должным образом.
edit2:
Обработчик событий и дизайн кнопок (абсолютно одинаковые для тех, кто работает, и тех, которые не работают:
//
// NUD_ValueOfF
//
this.NUD_ValueOfF.Font = new System.Drawing.Font("Calibri", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.NUD_ValueOfF.Increment = new decimal(new int[] {
1000,
0,
0,
0});
this.NUD_ValueOfF.Location = new System.Drawing.Point(219, 56);
this.NUD_ValueOfF.Maximum = new decimal(new int[] {
1000000000,
0,
0,
0});
this.NUD_ValueOfF.Name = "NUD_ValueOfF";
this.NUD_ValueOfF.Size = new System.Drawing.Size(120, 27);
this.NUD_ValueOfF.TabIndex = 172;
this.NUD_ValueOfF.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.NUD_ValueOfF.Value = new decimal(new int[] {
140000,
0,
0,
0});
this.NUD_ValueOfF.TextChanged += new System.EventHandler(this.NUD_ValueOfF_TextChanged);
Я был бы очень признателен, если бы кто-нибудь мог мне помочь.
Спасибо
BR,
Lifebringr