ComboBox, не теряющий фокус

А, я просто добавляю его как метод в моих псевдодиаграммах UML.:-)

5
задан Jonathan 29 March 2012 в 08:51
поделиться

6 ответов

Так что именно вы говорите? Вы хотите сказать, что ваш обработчик событий _LostFocus () не вызывается? Если это так, то в первую очередь я бы посмотрел на созданный дизайнером код сопоставления обработчика событий. Иногда у этого есть способ отделиться, сделав определенные вещи в дизайнере (хотя в наши дни это редко ...)

2
ответ дан 18 December 2019 в 05:49
поделиться

Возможно, вы захотите взглянуть на Этот раздел . Попробуйте установить для CausesValidation значение false в поле со списком, посмотрите, можете ли вы оставить его. Если в обработчике события OnValidating возникает исключение, он не снимает флажок.

16
ответ дан 18 December 2019 в 05:49
поделиться

Вы уверены, что проблема не в том, что ни у вашего кадра, ни у другого поля со списком нет способа получить фокус?

3
ответ дан 18 December 2019 в 05:49
поделиться

У меня возникла аналогичная проблема, но элемент управления рекурсивно терял и восстанавливал фокус; обработчик события LostFocus был вызван, но элемент управления немедленно восстановил фокус. Установка для свойства CausesValidation значения false не дала никакого эффекта.

В моем случае я привязал к свойству SelectedValue вместо свойства Text при привязке к настраиваемому объекту. Поскольку я вручную указал коллекцию элементов ComboBox и не предоставил источник данных, свойство ValueMember отсутствовало или недействительно (поэтому, конечно, свойство SelectedValue не использовалось)

. Изменение моей привязки для использования свойства Text решило проблему.

2
ответ дан 18 December 2019 в 05:49
поделиться

У меня была аналогичная проблема, и я попробовал все предложенные вами методы. К сожалению, ни один из них не работает. Вот мое "простое" решение: отправить последовательность клавиш "ESC" после того, как вы измените SelectedIndex.

ComboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
# do whatever you were doing
...
...
  SendKeys.Send("{ESC}");
}

У меня это сработало.

1
ответ дан 18 December 2019 в 05:49
поделиться

В ***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.

0
ответ дан 18 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: