Невозможно повторить список автозаполнения с помощью клавиши со стрелкой вниз

У меня есть Telerik RadDropDownList, свойство автозаполнения которого установлено. Отображение списка автозаполнения работает очень хорошо, и я могу использовать мышь, чтобы выбрать элемент. Однако я не могу перебрать список автозаполнения, используя мою клавишу со стрелкой вниз. Когда список отображается, и я нажимаю клавишу со стрелкой вниз, автоматически выбирается первое значение. Когда я снова нажимаю клавишу со стрелкой вниз (чтобы перейти к следующему элементу), приложение зависает и вылетает.

Кроме того, я не совсем уверен, как SelectedIndex должен работать. В моем коде ниже событие SelectedIndexChanged вызывается при изменении позиции индекса, однако метод PopulateTasks вызывается еще до того, как я выбираю элемент из раскрывающегося списка.

Я пытался с помощью

radDropDownList1.SelectedItem.Selected == true 

условие для вызова метода PopulateTasks только после выбора элемента, но это не похоже на работу.

Есть идеи, что я мог бы попробовать?

void PopulateProjects()
{
 radDropDownList1.BeginUpdate();
 radDropDownList1.DataSource = ditems;
 radDropDownList1.DisplayMember = "ProjectName";
 radDropDownList1.ValueMember = "ProjectName";
 radDropDownList1.DropDownListElement.AutoCompleteSuggest.SuggestMode = 
 Telerik.WinControls.UI.SuggestMode.Contains;
 Size popupSize = new Size(650, 400);                   
radDropDownList1.DropDownListElement.AutoCompleteSuggest.DropDownList.DropDownMinSize = popupSize;
     radDropDownList1.DropDownListElement.DropDownMinSize = popupSize;
     radDropDownList1.ListElement.Font = new Font("Microsoft Sans Serif", 16);            radDropDownList1.DropDownListElement.AutoCompleteSuggest.DropDownList.Popup.Font = new System.Drawing.Font("Microsoft Sans Serif", 16);
     radDropDownList1.EndUpdate();
     radDropDownList1.SelectedIndex = 0;
     radDropDownList1.Text = "Select Project";
    }

Мой обработчик событий:

private void raddropdownlist1_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
        {
            if (radDropDownList1.SelectedIndex >1)
            {
                if (radDropDownList1.SelectedItem.Selected == true)
                {
                    radTaskList.Select();
                    PopulateTasks();
                }
                if (this.GetMainForm().IsResetApp)
                {
                    return;
                }
            }
        }

1 ответ

RadDropDownList заполняет элементы во всплывающем окне автозаполнения, которые соответствуют вводу пользователя при вводе. После открытия всплывающего окна автозаполнения и фильтрации элементов вы можете перемещаться по элементам с помощью клавиш со стрелками. Поведение по умолчанию иллюстрируется в следующем видео: https://www.screencast.com/t/vIHGY1HRLSq

Не совсем понятно, как код в событии SelectedIndexChanged влияет на сам RadDropDownList, но, похоже, он каким-то образом обновляет его, что может привести к описанному нежелательному поведению. Но это только мои предположения, так как я не знаю о полной реализации, которую вы имеете с вашей стороны.

Поскольку у вас возникают проблемы с навигацией с помощью клавиатуры, я прошу вас отправить заявку в службу поддержки из вашей учетной записи Telerik. Таким образом, инженеры поддержки Telerik с радостью помогут вам.

Спасибо за сотрудничество.

Другие вопросы по тегам