Office中国论坛/Access中国论坛

标题: 组合框弹出列表是dropdown,怎么收起列表? [打印本页]

作者: tz-chf    时间: 2008-12-10 20:43
标题: 组合框弹出列表是dropdown,怎么收起列表?
如题
作者: Henry D. Sy    时间: 2008-12-10 20:50
好像没有这种方法。
一般在失去焦点都会自动收起的。
作者: Henry D. Sy    时间: 2008-12-10 20:52
try:
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,lParam As Any) As Long
Public Const CB_SHOWDROPDOWN=&H14F
     当程序中某处需要拉下组合框Combol的列表时,写如下调用语句:
SendMessage Combol.hwnd,CB_SHOWDROPDOWN,True,0
     当需要收起组合框Combol的列表时,写如下语句:
SendMessage Combol.hwnd,CB_SHOWDROPDOWN,False,0
作者: tz-chf    时间: 2008-12-10 21:48
要用api就算了

是在组合框,输入拼音首字母检索时弹出列表,希望按回退键重新检索时收起列表.不过关系也不大.
作者: Henry D. Sy    时间: 2008-12-10 22:07
原来只是这样啊
try
  1. Private Sub Combo0_Change()
  2.     Me.Combo0.Dropdown
  3. End Sub

  4. Private Sub Combo0_KeyUp(KeyCode As Integer, Shift As Integer)
  5.     If KeyCode = 8 Then
  6.         Me.Recalc
  7.     End If
  8. End Sub
复制代码

作者: tz-chf    时间: 2008-12-10 22:32
Me.Recalc会闪动
可以去焦点,再回来
作者: Henry D. Sy    时间: 2008-12-10 22:41
也可以
不过需要定位selstart的位置。

[ 本帖最后由 Henry D. Sy 于 2008-12-10 22:42 编辑 ]
作者: tz-chf    时间: 2008-12-10 22:49
组合框显示的是品名,输入的是拼音首字母检索品名,所以就是选中状态,回退键就是删除了,也不用定位了。现在还是决定不收回列表了,就让它弹开好了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3