Foxtable(狐表)用户栏目专家坐堂 → [求助]直接用方向键选择combobox内容?


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

主题:[求助]直接用方向键选择combobox内容?

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


加好友 发短信
等级:四尾狐 帖子:941 积分:7786 威望:0 精华:0 注册:2013/7/7 13:37:00
[求助]直接用方向键选择combobox内容?  发帖心情 Post By:2013/11/12 10:27:00 [只看该作者]

想着用tab键切换到combobox控件时,直接用方向键来切换选项,结果不支持(好像要用鼠标或F4键激活才可以)
有没有什么办法可以实现直接切换?

呵呵,在LXL的提醒下,给出标准代码,设置在ComboBox的KeyDown事件:

 

If e.KeyCode = Keys.Down Then
    e.Cancel = True
    ctype(e.Sender.BaseControl,Foxtable.CustomComboBox).OpenDropDown        
End If


结果提示“编译错误,未定义类型CustomComboBox”  ,是怎么回事?

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


加好友 发短信
等级:四尾狐 帖子:941 积分:7786 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2013/11/12 10:32:00 [只看该作者]

找到方法了。
设置在ComboBox的KeyDown事件:
If e.KeyCode = Keys.Down Then
    SendKeys.Send("{F4}")
End If

不知还有没有更好的方法!?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/12 10:37:00 [只看该作者]

If e.KeyCode = Keys.Down Then
    e.Cancel = True
    e.Sender.OpenDropDown       
End If

这样不就行了吗?

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


加好友 发短信
等级:四尾狐 帖子:941 积分:7786 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2013/11/12 10:41:00 [只看该作者]

找到一个更全面的方法,直接在窗体KeyDown事件里设置,这样对窗体所有combobox都有效!

If TypeOf e.Sender Is WinForm.ComboBox Then '如果单击的是组合框
    If e.KeyCode = Keys.Down Then
        SendKeys.Send("{F4}")
    End If
End If

图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:941 积分:7786 威望:0 精华:0 注册:2013/7/7 13:37:00
  发帖心情 Post By:2013/11/12 10:44:00 [只看该作者]

If TypeOf e.Sender Is WinForm.ComboBox Then '如果单击的是组合框
    If e.KeyCode = Keys.Down Then
         e.Cancel = True
         e.Sender.OpenDropDown
    End If
End If

是的,这样也行,刚才试试

 回到顶部