在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
事件会以Form1
的Windows 10声音加载Asterisk
(在显示弹出警报时播放,例如警告消息)或Default Beep
声音,(出于多种原因播放,并在关闭活动窗口之前选择了父窗口),或者是Exclamation
,其中 (根据What Are The Program Events That Are Included In A Sound Scheme?的说法(在您尝试执行OS不支持的操作时播放)。
我不确定这三首歌听起来是一样的,或者是同一音轨,无论如何,我不知道如何在LOGIN();
函数中通过键盘输入来避免这种声音,表单将以这种方式加载:
Form1 objForm1 = new Form1();
this.Hide();
objForm1.Show();
任何指南,建议或示例都会有所帮助
答案 0 :(得分:1)
执行此操作的几种方法,请检查: Stop the 'Ding' when pressing Enter
我认为最好的方法是设置Form.AcceptButton属性(设置为期望的按钮),而根本不对文本框的keydown进行编程,但是如果您不想这样做,也可以使用下面的代码:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//DoYourLogic
e.Handled = true;
e.SuppressKeyPress = true;
}
}