4

我在 vb.net 中制作了一个快速的网络浏览器,我拥有它,这样当您按 Enter 键时,它会导航到 textbox1 中的网页。唯一的问题是,每次我按 Enter 键时它都会发出哔哔声。我尝试使用 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

我以为 e.Handled 会让那恼人的哔哔声消失,但事实并非如此。

4

1 回答 1

7

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

IE

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

从第一个 MSDN 链接:

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

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

于 2012-09-16T03:29:27.303 回答