在需要输入控件时触发打开虚拟键盘窗口,在虚拟键盘窗口上在对应控件上按click触发以下代码,如果需要输入的是textbox控件一切都正常,如果输入的是RecordGrid控件就会出现上述问题
If Forms(e.Form.Controls("窗口名").text).opened=True
Forms(e.Form.Controls("窗口名").text).Controls(e.Form.Controls("控件名").text).Select()
If e.sender.text.length=1
Select Case e.sender.text
Case "+","^","%","~","(",")"
Sendkeys.Send("{END}")
Sendkeys.Send("{" & e.sender.text & "}")
Case Else
Sendkeys.Send("{END}")
Sendkeys.Send(e.sender.text)
End Select
Else
Select Case e.sender.text
Case "123符"
For Each c As WinForm.Control In e.Form.Controls
c.left=c.left-e.Form.BaseForm.Width
Next
Case "abc"
For Each c As WinForm.Control In e.Form.Controls
c.left=c.left+e.Form.BaseForm.Width
Next
Case "大写"
e.sender.text="小写"
For Each c As WinForm.Control In e.Form.Controls
If c.name.length=1
Dim t As WinForm.Button = c '使用特定类型的变量引用控件
If Char.Isletter(t.text) Then
t.text=t.text.ToUpper()
End If
End If
Next
Case "小写"
e.sender.text="大写"
For Each c As WinForm.Control In e.Form.Controls
If c.name.length=1
Dim t As WinForm.Button = c '使用特定类型的变量引用控件
If Char.Isletter(t.text) Then
t.text=t.text.tolower()
End If
End If
Next
Case "shift"
Sendkeys.Send("+")
Case "换行"
Sendkeys.Send("{Enter}")
Case "空格"
Sendkeys.Send(" ")
Case "后退"
Sendkeys.Send("{BACKSPACE}")
Case "完成"
e.Form.close
End Select
End If
End If