Vb.net 如何设置ComboBox以允许用户键入前几个字符,然后按ENTER键自动选择项目?

Vb.net 如何设置ComboBox以允许用户键入前几个字符,然后按ENTER键自动选择项目?,vb.net,combobox,Vb.net,Combobox,我有一种感觉,这是一件非常简单的事情,我忽略了 我有两个组合框,允许用户搜索/选择他们想要查看的记录。一个是客户名称,另一个是客户编号,因此用户可以通过选择名称或编号来查找特定记录 每个组合框由SQL Server数据库返回的数据表填充 每个组合框的DropDownStyle设置为DropDown,AutoCompleteMode设置为SuggestAppend,AutoCompleteSource设置为ListItems 用户可以通过单击下拉箭头进行选择,然后单击以前的项目,也可以通过键入开始

我有一种感觉,这是一件非常简单的事情,我忽略了

我有两个组合框,允许用户搜索/选择他们想要查看的记录。一个是客户名称,另一个是客户编号,因此用户可以通过选择名称或编号来查找特定记录

每个组合框由SQL Server数据库返回的数据表填充

每个组合框的DropDownStyle设置为DropDown,AutoCompleteMode设置为SuggestAppend,AutoCompleteSource设置为ListItems

用户可以通过单击下拉箭头进行选择,然后单击以前的项目,也可以通过键入开始,组合框根据用户正在键入的字符缩小列表中的项目数

使用鼠标单击列表中他们想要的项目可以正常工作…它会启动一个例程,从数据库中检索所选项目

但是,当用户键入所需的选择并按ENTER键时,什么也不会发生。他们必须单击下拉箭头并单击项目,以便程序提取相应的记录

当用户点击enter时,如何让ComboBox拉取适当的记录


我正在使用Visual Basic。

从它的声音来看,您需要三个事件


您需要使用计时器来知道用户何时停止键入。要做到这一点,您需要一个事件,即当他们输入的字段的值发生变化时(
感谢JMichael让我正确处理了这个问题。我在这里发布我的解决方案,以防它对将来有类似问题的人有所帮助:

我添加到组合框的SelectionChangeCommitted事件中的代码也需要添加到组合框的KeyUp事件中:

Private Sub cboPolicySearch_KeyUp(sended as Object, e As KeyEventArgs) Handles cboPolicySearch.KeyUp
    If e.KeyCode = Keys.Enter Then
        GetSelectedPolicySearchRecord()
        e.Handled = True
    End If
End Sub     'cboPolicySearch_KeyUp
GetSelectedPolicySearchRecord()子文件包含调用SQL存储过程以选择用户在组合框中选择的记录数据所需的所有信息

以前,这只是从组合框的“SelectionChangeCommitted”事件调用的,该事件在用户单击下拉列表,然后单击下拉列表中的策略号时执行


我需要在组合框的“KeyUp”中向GetSelectedPolicySearchRecord添加相同的调用用户按enter键时的事件。

显示代码。我们不知道您使用的是什么事件。如果您按某个键时没有自动发生任何事件,那么显然您需要处理相应的事件,检测该键,然后执行所需操作。这就是您需要研究的内容。我不确定将c放置在何处的最佳位置ode是。在MS Access(VBA)中,有一个名为“AfterUpdate”的事件,它是当前数据库应用程序的处理方式,但Visual Basic(我们正在迁移到它)没有此类事件。按ENTER键处理选择的代码最好放在哪里?现在,我正在使用ComboBox的SelectionChangeCommitted事件从SQL Server数据库中提取记录。当用户单击ComboBox下拉错误,然后单击列表中的某个项时,这会起作用,但在en用户键入部分或全部数字,然后按enter键或单击其中一个自动建议。我需要哪一个?感谢您的回复,我不需要计时器,但在组合框的KeyUp事件中添加代码,以便在用户按enter键时调用我的SQL存储过程。再次感谢您!