建立了一个“ComboBox”控件, 用来筛选用的。
在控件的“KeyDown”代码如下:
If e.KeyCode = Keys.enter Then
Dim filter As String
Dim sts() As String = {"项目编号"}
For Each st As String In sts
Dim val As String = e.Form.Controls(st).value
If val > "" Then
val = val.Replace("*","[*]")
If filter = "" Then
filter = st & " like '*" & val & "*'"
Else
filter = filter & " and " & st & " like '*" & val & "*'"
End If
End If
Next
Tables("项目总表").Filter = filter
End If
原本意图是在控件中输入一些文字,然后在表中筛选。
但是实际使用的时候 ,往往要按两次回车键才可以。如下图示演示。
其实我在输完“DC35”后按了一次回车键的,但是它不筛选,而是把焦点激活到了“详细信息”的按钮上。
当我再次把ComboBox控件选中,然后再按一次回车键,这时才会有执行筛选动作。
为什么会这样呢?
为什么我第一次按回车时它不按我代码执行筛选,而是跳到了另一个控件上?
这样有实际使用时很不友好,每次都要这样按两次回车键。

此主题相关图片如下:按回车不会筛选1.gif