Vb.net Visual Basic-如何防止文本框中的键盘键
我想创建一个像这个网站一样的程序。当我点击一个像“m”这样的键时,它会写上“م”,所以我在VisualBasic程序中对按钮进行了编程,以将击键发送到文本框。当我尝试下面的代码时,当我按下键盘键时,它单击了Visual Basic中发送击键的按钮Vb.net Visual Basic-如何防止文本框中的键盘键,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我想创建一个像这个网站一样的程序。当我点击一个像“m”这样的键时,它会写上“م”,所以我在VisualBasic程序中对按钮进行了编程,以将击键发送到文本框。当我尝试下面的代码时,当我按下键盘键时,它单击了Visual Basic中发送击键的按钮 If (GetAsyncKeyState(65)) Then Button19.PerformClick() End If 它是有效的,但它也写了我找到的普通关键字,所以它写了两个关键字,例如“m”和“م” 有什么解决办法吗 对于按下的键(K
If (GetAsyncKeyState(65)) Then
Button19.PerformClick()
End If
它是有效的,但它也写了我找到的普通关键字,所以它写了两个关键字,例如“m”和“م”
有什么解决办法吗 对于按下的键(
KeyPressed
或KeyDown
),只需指定:
e.Handled = true
这将阻止字母出现在文本框中。检查一下
你也可以做一些变通,但我不推荐。只需处理文本框的
TextChanged
事件并删除文本:
Sub TB_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = ""
End Sub
你可以试试:
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
.对不起,没有用。您尝试过我的解决方案吗?正如@ooopsoft所说,您必须使用您的控件名(
RichTextBox1
)而不是TextBox1
(作为我的示例),我尝试了RichTextBox1\u按键,但它也禁用了我的代码>If(GetAsyncKeyState(65))Then>按钮20。PerformClick()>End如果抱歉没有工作,如果您提供更多代码,它会有所帮助,例如,Button19?ech按钮下的代码包含以下代码>RichTextBox1.Focus()>SendKeys.Send(“م”),并且有一个计时器包含大量此代码>If(GetAsyncKeyState(65)),然后>Button19.PerformClick()>End Ifah!您可以使用RichTextBox1来测试上述代码,插入一个textbox1,用鼠标在(焦点)textbox1内单击,然后按键盘上的字母“a”,或者将代码放在RichTextBox1_KeyPress