Visual Basic - 如何防止文本框中的键盘键

时间:2014-06-27 11:27:29

标签: vb.net visual-studio-2010

我想创建一个像这个网站http://www.lexilogos.com/clavier/araby.htm这样的程序。当我点击像“m”这样的键时,它会写“م”,所以我编写了Visual Basic程序中的按钮,将键击发送到文本框。当我尝试下面的代码时,当我点击键盘键时,它点击了Visual Basic中发送击键的按钮

If (GetAsyncKeyState(65)) Then
    Button19.PerformClick()
End If

它可以工作,但它也写了我点击的普通关键字,所以它写了两个关键字,例如“m”和“م”。

有什么解决方案吗?

2 个答案:

答案 0 :(得分:3)

如果按下了键(KeyPressedKeyDown),请指定:

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