我想创建一个像这个网站http://www.lexilogos.com/clavier/araby.htm这样的程序。当我点击像“m”这样的键时,它会写“م”,所以我编写了Visual Basic程序中的按钮,将键击发送到文本框。当我尝试下面的代码时,当我点击键盘键时,它点击了Visual Basic中发送击键的按钮
If (GetAsyncKeyState(65)) Then
Button19.PerformClick()
End If
它可以工作,但它也写了我点击的普通关键字,所以它写了两个关键字,例如“m”和“م”。
有什么解决方案吗?
答案 0 :(得分:3)
如果按下了键(KeyPressed
或KeyDown
),请指定:
e.Handled = true
这将阻止字母出现在TextBox上。检查是MSDN Documentation。
你也可以做一个解决方法,但我不推荐它。只需处理TextBox的TextChanged
事件并删除文本:
Sub TB_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = ""
End Sub
答案 1 :(得分:2)
您可以尝试:
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = "a" Then
e.KeyChar = "1"
End If
End Sub