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