按下某个键时跳转到所选内容的下拉框
本文关键字: | 更新日期: 2023-09-27 18:32:57
我有一个组合框,用于定义屏幕上其他框的内容。
因此,例如,如果我在员工姓名的组合框中键入"Apple",则会导致错误,因为我的数据库中没有"Apple"员工,这意味着不会检索任何内容来填充表单的其余部分。
是否有我可以设置的属性或可以编写的代码片段来确保用户在组合框中键入的任何内容都会突出显示抽奖中的选择?
您可以将
DropDownStyle
设置为DropDownList
(而不是DropDown
)。然后用户可以阻止类型,但Combobox
仅在存在此类元素时才切换选择。
(但是,这确实更改了组合框外观,因此它看起来不再像"自由文本"可用)
将AutoCompleteMode
设置为Suggest
,AutoCompleteSource
设置为ListItems
,以便键入的不仅仅是第一个字母。(组合框将在用户键入更多字母时展开和切换元素。
检查要绑定到 ComboBox 中的数据源(数据表、数据集等)计数
if(DataSource!=null && DataSource.rows.count>0)
{
combobox.datasource=DataSource;
combobox.refresh();
}
我建议您执行以下操作:
1.获取文本框并将文本框的属性设置为 AutoCompleteMode=SuggestAppend
和AutoCompleteSource = CustomSource
.
2.在数据表中加载所需的值(可能是员工姓名或所需的任何其他列)。
3.在页面加载或您想要的任何事件中调用以下方法。
public bool AutoComplete()
{
try
{
DataTable dtEmpName=/////// store the employees name in this DataTable.
var empNames = dtEmpName.Select(s => s.EmpName('the column you want').Distinct().ToArray();
/////// Auto complete Name from Surname
AutoCompleteStringCollection instcol = new AutoCompleteStringCollection();
instcol.AddRange(empNames);
txtEmpNames.AutoCompleteCustomSource = instcol;
}
catch (Exception ex)
{
throw ex;
}
}