0

我有一个设置了自动完成属性的 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;
                }
            }
        }
4

1 回答 1

0

RadDropDownList 填充自动完成弹出窗口中与您键入时用户输入相匹配的项目。打开自动完成弹出窗口并过滤项目后,您可以通过箭头键浏览项目。以下视频说明了默认行为:https ://www.screencast.com/t/vIHGY1HRLSq

目前尚不清楚 SelectedIndexChanged 事件中的代码如何影响 RadDropDownList 本身,但它似乎以某种方式刷新它,这可能导致所描述的不良行为。但这些只是我的猜想,因为我不知道您最终拥有的完整实现。

由于您在使用键盘导航时遇到问题,请您从 Telerik 帐户提交支持票。因此,Telerik 支持工程师很乐意为您提供帮助。

谢谢您的合作。

于 2019-07-24T07:38:25.367 回答