Невозможно повторить список автозаполнения с помощью клавиши со стрелкой вниз
У меня есть 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 с радостью помогут вам.
Спасибо за сотрудничество.