【问题标题】:How to force match Combobox RowSource row by setting its Text property?如何通过设置 Text 属性来强制匹配 Combobox RowSource 行?
【发布时间】:2019-06-19 10:00:13
【问题描述】:

在车间,使用带有较大按钮的虚拟(触摸)键盘表单将文本输入到 TextBox 和 ComboBox。

这可以正常工作,并且组合框文本设置正确,但是 RowSource 与使用物理键盘直接键入 ComboBox 时不匹配。整个列表的显示就像您没有输入字符就按下了下拉按钮一样。

在下面的示例中,列表中有一个 Stefan,但未查找该行。

我尝试了SetFocus、Requery、Refresh、Dirty,以及调用_AfterUpdate,结合使用DoEvents,但无济于事。

我什至尝试选择 Cut 和 Paste 文本(但即使将 SelStart 和 SelLength 设置为正确的值没有选择它,所以我' m 假设它剪切并粘贴了一系列零字符)。如果我能让文本选择工作,我可能会让它工作。

Dim ctrlPrevious As Control
Set ctrlPrevious = Screen.PreviousControl
ctrlPrevious.SetFocus
ctrlPrevious.text = sTemp
ctrlPrevious.SelStart = 0
ctrlPrevious.SelLength = Len(sTemp)
ctrlPrevious.Cut
ctrlPrevious.Paste

有没有办法强制自动完成行为?

【问题讨论】:

    标签: vba ms-access combobox autocomplete


    【解决方案1】:

    使用SendKeys 来模拟正常的键盘行为,而不是上面的所有代码。
    所以在你的btnPressed_Clicked 事件中

    Dim ctrlPrevious As Control
    Set ctrlPrevious = Screen.PreviousControl
    ctrlPrevious.SetFocus   
    SendKeys btnPressed.caption
    

    【讨论】:

    • 漂亮!很简单。我应该想到的。但我对控件的方法视而不见。
    • 社交媒体力量 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多