А, я просто добавляю его как метод в моих псевдодиаграммах UML.:-)
Так что именно вы говорите? Вы хотите сказать, что ваш обработчик событий _LostFocus () не вызывается? Если это так, то в первую очередь я бы посмотрел на созданный дизайнером код сопоставления обработчика событий. Иногда у этого есть способ отделиться, сделав определенные вещи в дизайнере (хотя в наши дни это редко ...)
Возможно, вы захотите взглянуть на Этот раздел . Попробуйте установить для CausesValidation значение false в поле со списком, посмотрите, можете ли вы оставить его. Если в обработчике события OnValidating возникает исключение, он не снимает флажок.
Вы уверены, что проблема не в том, что ни у вашего кадра, ни у другого поля со списком нет способа получить фокус?
У меня возникла аналогичная проблема, но элемент управления рекурсивно терял и восстанавливал фокус; обработчик события LostFocus
был вызван, но элемент управления немедленно восстановил фокус. Установка для свойства CausesValidation
значения false
не дала никакого эффекта.
В моем случае я привязал к свойству SelectedValue
вместо свойства Text
при привязке к настраиваемому объекту. Поскольку я вручную указал коллекцию элементов ComboBox и не предоставил источник данных, свойство ValueMember
отсутствовало или недействительно (поэтому, конечно, свойство SelectedValue
не использовалось)
. Изменение моей привязки для использования свойства Text
решило проблему.
У меня была аналогичная проблема, и я попробовал все предложенные вами методы. К сожалению, ни один из них не работает. Вот мое "простое" решение: отправить последовательность клавиш "ESC" после того, как вы измените SelectedIndex.
ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
# do whatever you were doing
...
...
SendKeys.Send("{ESC}");
}
У меня это сработало.
В ***form.Designer.vb
у вас есть код для каждого combobox вроде:
'OrgDetailsIDComboBox
'
Me.OrgDetailsIDComboBox.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.MedicoLegalBindingSource, "OrgDetailsID", True))
Me.OrgDetailsIDComboBox.DataBindings.Add(New System.Windows.Forms.Binding("SelectedValue", Me.MedicoLegalBindingSource, "OrgDetailsID", True))
Me.OrgDetailsIDComboBox.DataSource = Me.OrgBindingSource
Me.OrgDetailsIDComboBox.DisplayMember = "Place"
Я устранил проблему, закомментировав первую строку кода (включает строку Forms.Binding("Text", )
. Так что, похоже, требуется только утверждение для SelectedValue
.