Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在vb中禁用按Enter键选择按钮_Vb.net_Keyboard_Arrow Keys - Fatal编程技术网

Vb.net 在vb中禁用按Enter键选择按钮

Vb.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) 完全禁用回车键。它应该像键盘上的死键一样

我设计了一个计算器。基本上我有一个标签,和一些按钮,其中包括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.KeyPress

    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