e.Handled在VB.net 2010中无效

Wil*_*ire 4 vb.net visual-studio-2010 beep

我在vb.net上做了一个快速的网络浏览器,我有它,所以当你按Enter键导航到textbox1中的网页.唯一的问题就是每次按下回车都会发出哔哔声.我尝试使用e.Handled = True,但它没有做任何事情.这是我的按键代码

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown

    If e.KeyCode = Keys.Enter Then
        e.Handled = True
        WebBrowser1.Navigate(TextBox1.Text)
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

我以为e.Handled会让那令人讨厌的嘟嘟声消失,但事实并非如此.

Mar*_*all 7

KeyEventArgs您想要的属性不是Handled而是SuppressKeyPress.

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    If e.KeyCode = Keys.Enter Then
        e.SuppressKeyPress = True
        WebBrowser1.Navigate(TextBox1.Text)
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

从第一个MSDN链接:

Windows窗体中的不同控件以不同方式实现处理.对于TextBox这样的控件,它是本机Win32控件的子类,它被解释为意味着不应将关键消息传递给底层本机控件.如果在TextBox上将Handled设置为true,则该控件不会将按键事件传递给基础Win32文本框控件,但它仍会显示用户键入的字符.

如果要阻止当前控件接收按键,请使用SuppressKeyPress属性.