【问题标题】:Unable to iterate autocomplete list using down arrow key无法使用向下箭头键迭代自动完成列表
【发布时间】:2019-07-23 21:20:00
【问题描述】:

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

【问题讨论】:

    标签: c# winforms telerik raddropdownbutton


    【解决方案1】:

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

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

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

    感谢您的合作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-05
      • 2021-08-07
      • 2012-05-13
      • 1970-01-01
      相关资源
      最近更新 更多