如何通过设置 Text 属性来强制匹配 Combobox RowSource 行?
Posted
技术标签:
【中文标题】如何通过设置 Text 属性来强制匹配 Combobox RowSource 行?【英文标题】:How to force match Combobox RowSource row by setting its Text property? 【发布时间】: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
有没有办法强制自动完成行为?
【问题讨论】:
【参考方案1】:使用SendKeys
来模拟正常的键盘行为,而不是上面的所有代码。
所以在你的btnPressed_Clicked
事件中
Dim ctrlPrevious As Control
Set ctrlPrevious = Screen.PreviousControl
ctrlPrevious.SetFocus
SendKeys btnPressed.caption
【讨论】:
漂亮!很简单。我应该想到的。但我对控件的方法视而不见。 社交媒体力量 :)以上是关于如何通过设置 Text 属性来强制匹配 Combobox RowSource 行?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过移动 xpath 与 Appium 匹配 @text 属性和正则表达式(正则表达式)来查找元素?
VB中怎么使用combox选择数值(如8,9,10等)来改变Text中字号的大小?
VB中,在COMBOX中选择一个值如何在TEXT中自动显示相关值