Как установить фокус на ComboBox в приложении Windows Forms (Visual Studio, VB.Net)? - PullRequest
0 голосов
/ 18 мая 2019

Обновление: Мне удалось сфокусировать ComboBox, но мне пришлось перейти в Project> Properties и переключить тип приложения на «ConsoleApp», а затем я смог настроить комбо-бокс для фокусировки. синий. Я все еще хотел бы знать, как сделать это изначально в приложении Windows Forms, хотя, поскольку .Focus (), кажется, не работает, и все остальное, что я пробовал: enter image description here

Оригинальный вопрос: это, возможно, тривиальный вопрос, но я искал в Google и пробовал другие методы, но не смог заставить мое простое приложение Windows Form App (.NET) с графическим интерфейсом установить focus на одном из моих ComboBox после ошибки (то есть, если значение ComboBox не выбрано, программа должна выдать ошибку MessageBox, затем установить focus на этот конкретный ComboBox). Я пытался .select () и focus () и менял таб-индекс.

Мои два комбинированных списка находятся справа от текстовых полей From: и To: и имеют имена cboFrom и cboTo . Стиль ComboBox DropDownList

Опция Явная: ON

Вариант строгий: ON

Опция Infer: Выкл.

И невыбран Microsoft.VisualBasic для в разделе «Ссылки» в свойствах проекта.

Это графический интерфейс: enter image description here

И как это выглядит, когда выдает ошибку для ComboBox, пусто и нажата кнопка Convert: enter image description here

И этот код выдает сообщение об ошибке, если какой-либо или оба поля со списком пусты. Он должен focus вернуться к ComboBox, который был пуст, но это не так.

Private Sub btnConvert_Click(sender As Object, e As EventArgs) Handles btnConvert.Click

    Dim dValueOfTxtBoxFrom As Double = 0

    If Me.cboFrom.SelectedIndex = -1 AndAlso Me.cboTo.SelectedIndex = -1 Then
      MessageBox.Show("Please select temperature units to convert from and to.", "Error: 10001", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
      'btnReset.Select() 'works fine

    ElseIf cboFrom.SelectedIndex = -1 OrElse cboTo.SelectedIndex = -1 Then
      MessageBox.Show("Please select temperature units to convert from and to.", "Error: 10001", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
      'btnExit.Select() 'works fine

    End If
...