在车间,具有较大按钮的虚拟(触摸)键盘窗体用于在TextBoxes和ComboBoxes中输入文本。
这可以正常工作,并且组合框文本设置正确,但是与使用物理键盘直接在ComboBox中键入内容时,RowSource不匹配。显示整个列表,就好像您只是在不键入字符的情况下按下下拉按钮一样。
在下面的示例中,列表中有一个Stefan,但没有查找该行。
我尝试了SetFocus
,Requery
,Refresh
,Dirty
,并与_AfterUpdate
组合使用并调用DoEvents
无济于事。
我什至尝试选择Cut
和Paste
文本(但即使设置SelStart
和SelLength
来更正值也不是选择它,所以我假设它剪切并粘贴了一个零字符范围)。如果我可以进行文本选择,那么我可能可以使它起作用。
Dim ctrlPrevious As Control
Set ctrlPrevious = Screen.PreviousControl
ctrlPrevious.SetFocus
ctrlPrevious.text = sTemp
ctrlPrevious.SelStart = 0
ctrlPrevious.SelLength = Len(sTemp)
ctrlPrevious.Cut
ctrlPrevious.Paste
是否可以强制执行“自动完成”行为?
答案 0 :(得分:1)
使用SendKeys
来模仿普通的键盘行为,而不是上面的所有代码。
因此,在您的btnPressed_Clicked
事件中
Dim ctrlPrevious As Control
Set ctrlPrevious = Screen.PreviousControl
ctrlPrevious.SetFocus
SendKeys btnPressed.caption