В настольном приложении 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 со звуком Asterisk Windows 10 (воспроизводится, когда отображается всплывающее предупреждение, например предупреждающее сообщение) или звуком Default Beep, (играется по нескольким причинам с выбором родительского окна перед закрытием активного), или это Exclamation, который (играет при попытке сделать что-то, что не поддерживается ОС), согласно Какие программные мероприятия включены в звуковую схему?.
Я не уверен, какой именно, эти 3 части звучат одинаково, или это одна и та же звуковая дорожка, в любом случае я не знаю, как избежать этого звука при вводе с клавиатуры, в функции LOGIN(); форма загружается следующим образом:
Form1 objForm1 = new Form1();
this.Hide();
objForm1.Show();
Любое руководство, совет или пример будут полезны
@Ron Beyer, Привет, вот я и добавил private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { e.Handled = true; LOGIN(); } } такой же результат, звук.





Несколько способов сделать это, проверьте: Остановите 'Ding' при нажатии Enter
Я думаю, что лучший способ - настроить свойство Form.AcceptButton (для ожидаемой кнопки) и вообще не программировать нажатие клавиши в текстовом поле, но вы также можете использовать приведенный ниже код, если вы этого не хотите:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
//DoYourLogic
e.Handled = true;
e.SuppressKeyPress = true;
}
}
Привет, да, работает нормально, но как правильно установить свойства Form.AcceptButton и Form.CancelButton?
Я не уверен, получил ли я ваш вопрос, но Form.AcceptButton - это свойство формы, которую вы используете (form2), вы просто щелкаете окно свойств и выбираете кнопку, которая будет «нажата», когда пользователь нажимает клавишу ввода. ваша форма. Если вы хотите установить его с помощью кода, это будет this.AcceptButton = buttonname; в основном «кнопка отмены» - это кнопка, которую щелкают при нажатии esc. Если вы установите acceptbutton, вам не понадобится код textbox_keydown
А, хорошо, понял. Спасибо за поддержку
Попробуйте установить
e.Handled = true;перед вызовомLOGIN();