Моя проблема, кажется, довольно проста, но она не работает интуитивно.
Я разрабатываю приложение для Windows Forms, и есть диалоговое окно, которое НЕ должно закрываться при нажатии клавиши ввода, вместо этого оно должно сначала проверить данные, в случае, если ввод был нажат после изменения текста ComboBox .
Я пытался объяснить, что делать с KeyPress событием ComboBox , если e - это Enter :
Private Sub ComboBoxSizeChoose_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBoxSizeChoose.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
Try
TamanhoDaNovaFonte = Single.Parse(ComboBoxSizeChoose.Text)
Catch ex As Exception
Dim Dialogo2 As New Dialog2
Dialog2.ShowDialog()
ComboBoxSizeChoose.Text = TamanhoDaNovaFonte
End Try
End If
End Sub
Но пока безуспешно. При нажатии клавиши Enter , даже если ComboBox на фокусе , весь диалог закрывается, возвращаясь к предыдущей форме. Проверка НЕ выполнена вообще , и это необходимо сделать перед выходом. На самом деле, я даже не хочу выходить при вводе формы KeyPress, единственная цель клавиши ввода во всем диалоговом окне - проверка ComboBox (но только в фокусе, для интуитивно понятного интерфейса).
Я также попытался добавить проверку к событию KeyPress формы всего диалогового окна, если ключ Введите . НЕТ УСПЕХА! Как будто моего кода там не было вообще.
Что мне делать?
(Visual Studio 2008, VB.NET)