Vba 如何通过设置其文本属性强制匹配组合框行源行?
在车间,使用带有较大按钮的虚拟(触摸)键盘表单将文本输入文本框和组合框 这可以正常工作,并且组合框文本设置正确,但是行源与使用物理键盘直接在组合框中键入时不匹配。整个列表将显示,就像您刚刚按下下拉按钮而未键入字符一样 在下面的示例中,列表中有一个Stefan,但未查找该行 我尝试了Vba 如何通过设置其文本属性强制匹配组合框行源行?,vba,ms-access,combobox,autocomplete,Vba,Ms Access,Combobox,Autocomplete,在车间,使用带有较大按钮的虚拟(触摸)键盘表单将文本输入文本框和组合框 这可以正常工作,并且组合框文本设置正确,但是行源与使用物理键盘直接在组合框中键入时不匹配。整个列表将显示,就像您刚刚按下下拉按钮而未键入字符一样 在下面的示例中,列表中有一个Stefan,但未查找该行 我尝试了设置焦点,重新查询,刷新,脏的,并在更新后调用,但都没有成功 我甚至尝试过选择、Cut和Paste文本(但即使将SelStart和SelLength设置为正确值也不会选择它,因此我假设它会剪切并粘贴一系列零字符)。如果
设置焦点
,重新查询
,刷新
,脏的
,并在更新后调用,但都没有成功
我甚至尝试过选择、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
是否有办法强制执行自动完成行为?使用发送键来模拟正常的键盘操作,而不是上述所有代码。
因此,在您的btnPressed\u中单击了事件
Dim ctrlPrevious As Control
Set ctrlPrevious = Screen.PreviousControl
ctrlPrevious.SetFocus
SendKeys btnPressed.caption
美丽的!这么简单。我早该想到的。但我却对控制的方法视而不见