首页 > 解决方案 > 使用 textBox KeyDown 事件加载 C# WinForm 应用程序中的 Windows 10 声音

问题描述

C# WinForm桌面应用程序 Form2 中,这是登录表单,我有 textBox1_KeyDown事件:

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter) 
    { 
        LOGIN(); 
    } 
}

相同的LOGIN();函数加载Form1没有任何Windows 10 sound,例如使用按钮,如下所示:

 private void button1_Click(object sender, EventArgs e) 
 { 
    LOGIN(); 
 } 

但是按下Enter key键盘时,事件textBox1_KeyDown会加载Windows 10 声音(在显示弹出警报时播放,如警告消息)或声音(由于多种原因在关闭活动窗口之前选择父窗口播放),或者它是,(当您尝试执行操作系统不支持的操作时播放),根据什么是声音方案中包含的程序事件?.Form1AsteriskDefault BeepExclamation

我不确定哪一个,这 3 件听起来一样,或者它只是相同的音轨,反正我不知道,如何通过键盘输入来避免这种声音,在LOGIN();功能上,表单以这种方式加载:

            Form1 objForm1 = new Form1();
            this.Hide();
            objForm1.Show();

任何指南、建议或示例都会有所帮助

标签: c#winformstextboxwindows-10system-sounds

解决方案


执行此操作的几种方法,请检查: 按 Enter 时停止“叮”

我认为最好的方法是设置 Form.AcceptButton 属性(到预期的按钮),而不是在文本框中编程 keydown,但如果你不想要这种方式,你也可以使用下面的代码:

private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        //DoYourLogic
        e.Handled = true;
        e.SuppressKeyPress = true;
      }
 }

推荐阅读