выберите элемент combobox, нажав клавишу enter в приложении c # Windows

#c# #winforms

#c# #winforms

Вопрос:

В c # я хочу выбирать элементы поля со списком с помощью клавиатуры, и когда я нажимаю enter после выбора одного, этот элемент должен быть выбран. как это сделать?

Ответ №1:

попробуйте что-то вроде этого …, это объяснит, как изменить элементы с помощью мыши и клавиатуры,….

Я обнаружил, что этот метод отлично работает во всех условиях. Но я не уверен, доступно ли что-нибудь более точное, чем этот метод.

     bool IsMouse = false;

    private void cmbMy_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (IsMouse)
        {
            //Write the logic if selection is changed by mouse
        }
        else
        {
            //Write the logic if selection is changed by keyboard
        }

        IsMouse = false;
    }

    private void cmbMy_IsMouseCapturedChanged(object sender, DependencyPropertyChangedEventArgs e)
    {
        IsMouse = true;
    }
  

В событии isMouseCapturedChanged в поле со списком я присвоил переменной bool значение true, и когда выбор в поле со списком изменился, я проверяю bool, выполняющий требуемую задачу, а затем устанавливаю для isMouse значение false.

Или вам нужно создать свой собственный пользовательский combobox..

Вам нужно создать пользовательский класс ComboBox и переопределить элемент управления.Метод ProcessKeyEventArgs.