Foxtable(狐表)用户栏目专家坐堂 → [求助]KeyDown事件为什么有时触发不了


  共有2628人关注过本帖树形打印复制链接

主题:[求助]KeyDown事件为什么有时触发不了

帅哥哟,离线,有人找我吗?
lianghanyu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2502 威望:0 精华:0 注册:2020/6/28 8:43:00
[求助]KeyDown事件为什么有时触发不了  发帖心情 Post By:2020/8/22 8:28:00 [只看该作者]

建立了一个“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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/22 9:33:00 [只看该作者]

Dim  val As String = e.Form.Controls(st).value
改为
Dim  val As String = e.sender.text

 回到顶部
帅哥哟,离线,有人找我吗?
lianghanyu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:283 积分:2502 威望:0 精华:0 注册:2020/6/28 8:43:00
  发帖心情 Post By:2020/8/22 9:40:00 [只看该作者]

谢谢,完美解决,太感谢了!!!!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/22 9:45:00 [只看该作者]

value要离开焦点才能获取到值的

 回到顶部