Vb.net 在vb中禁用按Enter键选择按钮
我设计了一个计算器。基本上我有一个标签,和一些按钮,其中包括btn0。。。。。。。。btn9等,btnequals。现在,当我单击btn0…btn1时,它会将数字输入到标签中。但我想使用键盘而不是鼠标。当我将forms key preview属性设置为true并使用下面的代码时,一切都很好,但当使用箭头键时,它会移动选定的按钮,然后当我按enter键时,会按下选定的按钮 此问题的标准: 1) 不能使用文本框而不是标签 其中一个解决方案可以帮助我… 1) 完全禁用回车键。它应该像键盘上的死键一样 2) 即使在移动箭头键的情况下,也禁用程序以选择按钮 3) 编程方式应确保仅当我按下enter键时才单击equals按钮 请帮我解决这个问题。先谢谢你 我使用的代码是: 私有子表单1u按键(ByVal发送方作为对象,ByVal e作为对象 System.Windows.Forms.KeyPressEventArgs)处理Me.KeyPressVb.net 在vb中禁用按Enter键选择按钮,vb.net,keyboard,arrow-keys,Vb.net,Keyboard,Arrow Keys,我设计了一个计算器。基本上我有一个标签,和一些按钮,其中包括btn0。。。。。。。。btn9等,btnequals。现在,当我单击btn0…btn1时,它会将数字输入到标签中。但我想使用键盘而不是鼠标。当我将forms key preview属性设置为true并使用下面的代码时,一切都很好,但当使用箭头键时,它会移动选定的按钮,然后当我按enter键时,会按下选定的按钮 此问题的标准: 1) 不能使用文本框而不是标签 其中一个解决方案可以帮助我… 1) 完全禁用回车键。它应该像键盘上的死键一样
If e.KeyChar = "0" Then
Btn0.PerformClick()
ElseIf e.KeyChar = "1" Then
Btn1.PerformClick()
ElseIf e.KeyChar = "2" Then
Btn2.PerformClick()
ElseIf e.KeyChar = "3" Then
Btn3.PerformClick()
ElseIf e.KeyChar = "4" Then
Btn4.PerformClick()
ElseIf e.KeyChar = "5" Then
Btn5.PerformClick()
ElseIf e.KeyChar = "6" Then
Btn6.PerformClick()
ElseIf e.KeyChar = "7" Then
Btn7.PerformClick()
ElseIf e.KeyChar = "8" Then
Btn8.PerformClick()
ElseIf e.KeyChar = "9" Then
Btn9.PerformClick()
Else
'Donothing Just Ignore
End If
End Sub
我最近遇到了这个问题,我想出的解决办法既快又简单。 每次按下按钮后,只需将焦点移到标签上! 例如,请执行以下操作:
Private Sub Btn0_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Do stuff
Label1.Focus()
End Sub
这将聚焦标签,这意味着该按钮将被取消聚焦,这意味着当您按enter键时将不会单击该按钮。祝你好运 而不是:
Else
'Donothing Just Ignore
End If
使用
ref:我可以帮您输入。我现在无法解决其余的问题。输入:
ElseIf e.KeyChar=Chr(13)
这将捕获您的方向键:受保护的覆盖函数ProcessDialogKey(keyData作为键)作为布尔返回假结束函数。。。欢迎光临@user3033480!如果它回答了你的问题,请随意投票并回答。但是,只有当它完全回答了你的问题时才接受。这可能是一种比我更简单的方法,但是,按钮仍然保持着焦点,这可能不是最优的。
Else
e.handled = true
End If