如何保持一个textbox控件始终在setfocus状态
我的form里有个textbox 我想始终把焦点放到这个textbox上 让它接收外部划卡器(PS2口那种)输入的数据
但是form里还有其他的label、command什么的 一不小心用鼠标点了 就会让textbox失去setfocus
从而不能接收ps2口传进来的数据
有什么办法能始终让textbox保持setfocus 谢谢
[解决办法]
form 有一个属性 是让form的keypress事件 在控件前面 然后处理form的 kepress事件
[解决办法]
最简单的办法就是在窗体中放置一个Timer,设置Interval=100
在Timer 中执行Text1.Setfocus
更好的办法是读取PS2键盘对应的IO地址,将输入内容解析出来,填入Text1中。这样就不用频繁的设置焦点。
[解决办法]
不用考虑保持焦点。让 Form 拦截键盘输入事件,直接处理即可。
Private Sub Form_KeyPress(KeyAscii As Integer)
Text1 = Text1 & Chr(KeyAscii)
End Sub
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
[解决办法]
改进一点:
Private Sub Form_KeyPress(KeyAscii As Integer)
If Not Me.ActiveControl Is Text1 Then Text1 = Text1 & Chr(KeyAscii)
End Sub
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
[解决办法]
把text1的tabindex=0,tabstop=true,
并且:
Private Sub Text1_LostFocus()
Text1.SetFocus
End Sub
玩流氓呗