您如何停止这种烦人的铃声?

问题描述 投票:0回答:2

我知道这个问题已经被问过很多次,但是如果所有的答案都不起作用怎么办?我正在使用Visual Studio 2017重写vb6应用程序,该应用程序捕获了组合键“ ctrl + enter”以加载对话框。我从名为CourtName的文本框中很好地捕获了组合键,但是无法摆脱它附带的烦人的“叮”声。我已经搜索了多个小时,但无处不在,答​​案是使用e.Handled和/或e.SuppressKeyPress,但我没有成功。这是我的代码:

Private Sub CourtName_KeyDown(sender As Object, e As KeyEventArgs) Handles CourtName.KeyDown
        If e.KeyCode = Keys.Enter AndAlso e.Control Then
            e.Handled = True
            e.SuppressKeyPress = True
            CourtsBtn.PerformClick()
        End If
End Sub

无论e.Handled和e.SuppressKeyPress语句是在PerformClick()语句之前还是之后,都仍然存在。我想念什么魔术?

vb.net handler keypress
2个回答
0
投票

我刚刚测试了这段代码,无论Enter是否使用了哪些修饰符,都没有响声。

Public Class Form1

    Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
        If e.KeyCode = Keys.Enter Then
            'Suppress Windows audio feedback.
            e.Handled = True
            e.SuppressKeyPress = True
        End If

        If e.KeyData = (Keys.Control Or Keys.Enter) Then
            Button1.PerformClick()
        End If
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Console.WriteLine("Button1_Click")
    End Sub

End Class

您可以测试相同的代码,看看它是否对您有用?


0
投票

尝试替换以下代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Multiline = True
    MsgBox("Pressed!")
End Sub

Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
    If e.KeyData = Keys.Control + Keys.Enter Then
        TextBox1.Multiline = False
        AcceptButton.PerformClick()
    End If
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    TextBox1.Multiline = True
End Sub

我已经在我的代码上进行过测试,它非常完美!100% working code

享受!

© www.soinside.com 2019 - 2024. All rights reserved.