标题: 组合框弹出列表是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
Private Sub Combo0_Change()
Me.Combo0.Dropdown
End Sub
Private Sub Combo0_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 8 Then
Me.Recalc
End If
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
组合框显示的是品名,输入的是拼音首字母检索品名,所以就是选中状态,回退键就是删除了,也不用定位了。现在还是决定不收回列表了,就让它弹开好了。