【问题标题】:Is there a way to stop the dinging sound from windows when you press enter on a text box [duplicate]当您在文本框上按 Enter 键时,有没有办法阻止 Windows 发出叮当声[重复]
【发布时间】:2019-06-20 16:36:54
【问题描述】:

我正在尝试设置一个文本框,允许您输入名称并按 Enter 键确认,但我不希望 Windows 在您每次按 Enter 键时都响起。在这种情况下或一起禁用声音。

我已经试过了:

Private Sub EnterMapName_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
    e.Handled = True
    e.SuppressKeyPress = True
    Select Case e.KeyCode
        Case Keys.Enter
            name = MapName.Text
    End Select
End Sub

【问题讨论】:

  • 您可以为表单的AcceptButton 属性分配一个按钮并处理该按钮的Click 事件。然后,当您在任何文本框控件上按 Enter 键时,将引发接受按钮的单击事件。
  • 除了accept按钮,如果想解决你当前代码的问题,需要将e.SuppressKeyPress = True移动到case语句中。目前您正在忽略所有按键。这意味着您的TextBox 将不会收到任何密钥。
  • 另外,请注意e.SuppressKeyPress = True 也将e.Handled 设置为相同的值。你只需要前者。
  • 只有一个案例时为什么要Select Case?一个简单的 If 就可以解决问题。

标签: .net vb.net winforms textbox


【解决方案1】:

在您的 KeyPress 事件中输入:

If e.KeyChar.GetHashCode = 851981 Then e.Handled = True 'TRAP THE ENTER KEY BEEP

【讨论】:

  • If e.KeyChar = ChrW(Keys.Enter) 不是比神奇的数字851981好吗?
  • 可能...但没用过后者,只有前者无法评论。
  • 我不建议检查恒定的哈希码,因为即使内部 .NET 代码中的微小变化也可能导致您的代码完全中断。哈希码是运行时对象的唯一标识符(例如 DictionaryHashTable 都广泛使用它),因此不应该随着时间的推移保持不变。
猜你喜欢
  • 2013-12-28
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
相关资源
最近更新 更多