焦点在combobox,敲回车后,拉出下拉菜单,就是用回车实现鼠标点击combol的小倒三角的效果!能做到么?50分必给!

zl17 2005-11-03 02:41:51
焦点在combobox,敲回车后,拉出下拉菜单,就是用回车实现鼠标点击combol的小倒三角的效果!能做到么?50分必给!
...全文
485 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
韧恒 2005-11-03
  • 打赏
  • 举报
回复
纠正一下,结合“ winehero(编程人生)”的方案,因为发现我的代码不能用于Style=2时的情况,而 "winehero(编程人生)"的方案在打开列表后,再按回车选择时,列表将再次打开,所以正确结果如下:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const CB_GETDROPPEDSTATE = &H157

Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
'' 如果按回车
If SendMessage(Combo1.hwnd, CB_GETDROPPEDSTATE, 1&, 0&) = 0 Then
'' 如果未处于下拉状态,则打开下拉列表。一定要检查,否则无法用回车关闭例表。
SendKeys "{F4}"
End If
End If
End Sub
zhzhq800204 2005-11-03
  • 打赏
  • 举报
回复
学习
wzzwwz 2005-11-03
  • 打赏
  • 举报
回复
唉,又慢了,该死的网速啊
winehero 2005-11-03
  • 打赏
  • 举报
回复

'搞那么多干什么?!发送F4键就可以了嘛


Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then sendkeys "{F4}"
End Sub
weiweiplay 2005-11-03
  • 打赏
  • 举报
回复
没说的了,蹭分行吗?
韧恒 2005-11-03
  • 打赏
  • 举报
回复
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const CB_SHOWDROPDOWN = &H14F
Private Const CB_GETDROPPEDSTATE = &H157


Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
'' 如果按回车
If SendMessage(Combo1.hwnd, CB_GETDROPPEDSTATE, 1&, 0&) = 0 Then
'' 如果未处于下拉状态,则打开下拉列表。一定要检查,否则无法用回车关闭例表。
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, 1&, 0&
KeyCode = 0 ' 一定要加上这个,否则下拉列表自动关闭
End If
End If
End Sub
northwolves 2005-11-03
  • 打赏
  • 举报
回复
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const CB_SHOWDROPDOWN = &H14F
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, 0
End Sub
wzzwwz 2005-11-03
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_SHOWDROPDOWN = &H14F

Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, ByVal 0
End If
End Sub
shawls 2005-11-03
  • 打赏
  • 举报
回复
在key_press里面判别是否为13/enter

然后使用上面的过程
shawls 2005-11-03
  • 打赏
  • 举报
回复
[名称] 让ComboBox自动下拉

[数据来源] 未知

[内容简介] 空

[源代码内容]

以下状况假设我在 Form_Load 中自动下拉 Combo1.

′以下声明用于16位
Const WM_USER = &H400
Const CB_SHOWDROPDOWN = (WM_USER + 15)
Private Declare Function SendMessage Lib "User" (ByVal hwnd As Integer, _
ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long

′以下声明用于32位
Const CB_SHOWDROPDOWN = &H14F
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long

Private Sub Form_Load()
Combo1.AddItem "11111"
Combo1.AddItem "22222"
Combo1.AddItem "33333"
Combo1.AddItem "44444"
Combo1.AddItem "55555"
Combo1.AddItem "66666"
′Form_Load 即自动下拉 Combo1
Dim nret As Long
nret = SendMessage(Combo1.hwnd, CB_SHOWDROPDOWN, 1, ByVal 0&)
End Sub


以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2005-11-03 14:59:05
软件版本: 1.0.881
软件作者: Shawls
E-Mail: ShawFile@163.com
QQ: 9181729
本次更新,我将文档从头到尾和官网发布的最新内容校对了一次,将所有的错误和遗漏的API全部补全和修复了。快半年了,EasyUI又更新了。这次依然以BUG修复和功能改进为主,EasyUI发展至今,主体功能已经基本完善。即便以后还有新组件,那也是在现有功能完善的基础上新增一些小组件了,类似Datagrid这类的大型复合组件应该比较少了,相比新组件我更期待官方能对EasyUI的性能优化多下下功夫。 jQuery EasyUI 1.4.5版本更新内容: Bug(修复) datagrid:修复在调用updateRow方法之后使用getChanges方法无法返回被更新的行的BUG; treegrid:修复在追加或插入新行的时候触发onLoadSuccess事件的BUG; tree:修复在追加或插入新节点的时候触发onLoadSuccess事件的BUG。 Improvement(改进) window:可以自定义显示样式了; window:新增“border”属性允许用户设置不同的边框样式; navpanel:新增“href”属性用以从远程服务器加载显示内容; combotree:“setValue”和“setValues”方法增加“id”和“text”形参; combobox:新增“showItemIcon”属性; combobox:在“groupPosition”属性值设置为“sticky”时,将会将选项分组标签固顶在下拉栏中; messager:当回车键时将默认触发消息框的第一个按钮; validatebox:新增“editable”、“disabled”、“readonly”、“validateOnCreate”和“validateOnBlur”属性; validatebox:新增“enable”、“disable”、“readonly”和“resetValidation”方法; validatebox:允许用户来决定如何显示错误消息; filebox:新增“accept”和“multiple”属性; treegrid:新增复选框的选择; treegrid:新增“getCheckedNodes”、“checkNode”和“uncheckNode”方法; form:新增“iframe”属性;(官方未提及) form:新增“onProgress”事件;(官方未提及) form:新增“resetValidation”方法。(官方未提及)
大家好,又见面了!EasyUI又更新了,这次更新内容还是不少的,具体内容请参考下面的更新说明,官方的更新说明中还少了1条,我给补上了。 jQuery EasyUI 1.3.5版本更新内容: Bug(修复) searchbox:修复“searcher”函数提供的“name”参数值错误的问题; combo:修复“isValid”方法无法返回布尔值的问题; combo:修复点击页面某一个combo组件的下拉列表时触发的“onHidePanel”事件会导致页面上其他combo组件的下拉列表被关闭的问题; combogrid:修复某些从combo组件继承来的方法无法使用的问题。 Improvement(改进) datagrid:改进检查行时候的性能; menu:允许追加菜单分隔符; menu:新增“hideOnUnHover”属性用于在鼠标离开菜单的时候指示是否需要隐藏菜单; slider:新增“clear”和“reset”方法; tabs:新增“unselect”方法、“onUnselect”事件; tabs:新增“selected”属性,用于指定的默认打开的面板; tabs:Tab Panel(Tab页)新增“collapsible”属性,用于设置是否允许摺叠面板; tabs:新增“showHeader”属性、“showHeader”方法和“hideHeader”方法; combobox:允许“disabled”属性禁用下拉列表选项; tree:改进数据加载时候的性能; pagination:新增“layout”属性,用于自定义控件的样式布局; accordion:新增“unselect”方法、“onUnselect”事件; accordion:新增“select”和“multiple”属性; accordion:新增“getSelections”方法; datebox:新增“sharedCalendar”属性,允许多个datebox控件共享使用同一个calendar控件。 datebox:新增“buttons”属性,用于自定义日历下方的按钮。 (译者注:该点更新内容官方更新公告上没有注明,具体内容和用法请看datebox的API。) 历史版本: - jQuery EasyUI 1.3.4 离线API简体中文版 http://download.csdn.net/detail/richie696/6302785 - jQuery EasyUI 1.3.4 离线API简体中文版 http://download.csdn.net/detail/richie696/5363933

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧