我有许多ComboBoxes,其中DataSource设置为绑定源,该绑定源是值和显示文本的列表。
我对这些组合框的要求是:
-将用户限制为仅选择列表中的项目
-如果用户选择了一个项目,然后改变了主意,则他们应该能够删除所选的项目,以便组合框为空白,并且未选择任何项目
-如果用户按下某些键,则应自动选择列表中以这些字符开头的项目
顺便说一句,在MS Access VBA中很容易满足这些要求,而在VB.NET中则很容易满足。
DropDownStyle“ DropDownList”将用户限制在列表中,但不允许用户选择一个项目,然后删除该选择。
DropDownStyle“ DropDown”并不将用户限制在列表中,而是允许用户选择一个项目,然后删除该选择。
因此,我的解决方案如下:
-使用“ DropDown” dropdown样式
-将AutoCompleteMode设置为Append并将AutoCompleteSource设置为ListItems
-将此代码放入具有组合框(名称为cmb_x,cmb_y,cmb_z的组合框)的每种形式中:
Private Sub ComboboxValidating(ByVal发送者作为对象,ByVal e作为System.ComponentModel.CancelEventArgs)处理cmb_x.Validating,cmb_y.Validating,cmb_z.Validating
昏暗的盒子作为组合框
TheBox =发件人
如果TheBox.SelectedIndex = -1并且TheBox.Text <>“”然后
TheBox.Text =“”
万一
结束子
这意味着,如果用户键入的内容不在列表中,那么他们键入的内容就会消失。