以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]直接用方向键选择combobox内容?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42443)

--  作者:jnletao
--  发布时间:2013/11/12 10:27:00
--  [求助]直接用方向键选择combobox内容?
想着用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
--  发布时间:2013/11/12 10:32:00
--  
找到方法了。
设置在ComboBox的KeyDown事件:
If e.KeyCode = Keys.Down Then
    SendKeys.Send("{F4}")
End If

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


--  作者:Bin
--  发布时间:2013/11/12 10:37:00
--  
If e.KeyCode = Keys.Down Then
    e.Cancel = True
    e.Sender.OpenDropDown       
End If

这样不就行了吗?

--  作者:jnletao
--  发布时间: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
--  发布时间: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

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