Контроль данных не потеряет фокус
Я создаю форму, в которой каждый элемент управления привязывается к свойству другого класса, и я обнаружил, что есть некоторые элементы управления, которые просто не потеряют фокус при попытке покинуть элемент управления. Например, у меня есть элемент управления numericUpDown, который связан со свойством отдельного класса, и если я щелкну в numericUpDown, он получит фокус, однако, если я щелкну вне элемента управления, он не потеряет фокус. Я не могу получить доступ к другим элементам управления в форме и не могу выйти из формы. Кнопка X в верхнем правом углу просто ничего не делает, а numericUpDown все еще имеет фокус.
Когда я попытался выполнить отладку, чтобы точно увидеть, что происходит, я увидел, что всякий раз, когда я пытался покинуть элемент управления, вызывалось событие "Leave", обновлялось значение базы данных, однако сразу после этого вызывалось событие "Enter".
Вот код для привязки данных для numericUpDown, о котором я говорил. NumericUpDown называется Major_Tick_Number и привязан к свойству MajorTicks в поле Dial.Representation:
Major_Tick_Number.DataBindings.Add("Value", theDial.Representation, "MajorTicks");
И вот код дизайнера для этого:
this.Major_Tick_Number.Location = new System.Drawing.Point(195, 17);
this.Major_Tick_Number.Maximum = new decimal(new int[] {
1000,
0,
0,
0});
this.Major_Tick_Number.Name = "Major_Tick_Number";
this.Major_Tick_Number.Size = new System.Drawing.Size(46, 20);
this.Major_Tick_Number.TabIndex = 63;
this.Major_Tick_Number.Value = new decimal(new int[] {
10,
0,
0,
0});
Опять же, привязка данных работает нормально в том смысле, что значение обновляется, но элемент управления просто не потеряет фокус.
Если я уберу привязку данных, управление получит и потеряет фокус как обычно.
Кое-что я хотел бы отметить: я использую Visual Studio 2008 и программирую на C#. Кроме того, моя форма имеет tabControl, а все остальные мои элементы управления находятся на tabControl, не уверен, что это имеет значение. Кроме того, я хотел бы подчеркнуть, что некоторые элементы управления (возможно, 25%) работают нормально, а некоторые имеют проблему фокуса, и я не могу видеть какой-либо шаблон, в котором элементы управления работают, а какие не работают.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Будем весьма благодарны за любую помощь, предложения, которые вы можете предоставить.
Спасибо.
Вот свойство, к которому оно привязано
public float MajorTicks {
get { return otherObject.getMajorTicks(); }
set { otherObject.setMajorTicks(value); }
}
а в другом объекте (написано на управляемом с ++)
float getMajorTicks() {return majorTicks;};
void setMajorTicks(float val) {majorTicks = val;};