Ведущий разработчик говорит, что когда он использует мое приложение, его клавиатура издает звуковой сигнал, когда он перемещается между текстовыми полями на TableLayoutPanel с помощью клавиш со стрелками направления.
Однако я не слышу такой звуковой активности.
Вот мой код:
// Had to intercept Up and Down arrows from Windows
private void textBoxPlatypi_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
TextBox tb = (TextBox)sender;
if (e.KeyCode.Equals(Keys.Up)) {
SetFocusOneRowUp(tb.Name);
return;
}
if (e.KeyCode.Equals(Keys.Down)) {
SetFocusOneRowDown(tb.Name);
return;
}
}
private void textBoxPlatypi_KeyDown(object sender, KeyEventArgs e) {
TextBox tb = (TextBox)sender;
if (e.KeyCode.Equals(Keys.Left)) {
SetFocusOneColumnBack(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Right)) {
SetFocusOneColumnForward(tb.Name);
e.Handled = true;
return;
}
}
..Он подумал, может быть, мне нужно "e.Handled", но это недоступно в событии PreviewKeyDown.
Есть ли способ подавить звуковой сигнал (который, по-видимому, происходит только с определенными клавиатурами или определенными настройками (он использует Windows7, я все еще на XP))?
Теперь у меня есть этот код:
private void textBoxPlatypus1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
switch (e.KeyCode) {
case Keys.Down:
case Keys.Up:
e.IsInputKey = true;
break;
}
}
private void textBoxPlatypus1_KeyDown(object sender, KeyEventArgs e) {
TextBox tb = (TextBox)sender;
if (e.KeyCode.Equals(Keys.Up)) {
SetFocusOneRowUp(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Down)) {
SetFocusOneRowDown(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Left)) {
SetFocusOneColumnBack(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Right)) {
SetFocusOneColumnForward(tb.Name);
e.Handled = true;
return;
}
}
... но он все еще слышит звуковой сигнал (я не слышу).
Он на Аляске и использует Windows 7; Я в Калифорнии и использую XP. Я не знаю, является ли проблема какой-то комбинацией/несоответствием...
Я знаю, что это может шокировать некоторых, но разъединение Аляски и Калифорнии не имеет к этому никакого отношения. Я теперь тоже слышу гудки, и это не от клавиш со стрелками. Это когда значение вводится в TextBox, а затем, если в этом текстовом поле уже есть символ, фокус перемещается на следующее textBox и туда вводится значение (это мой код, который вызывает это). Но раздражающий звуковой сигнал кажется случайным - я не понял, как он издает звуковой сигнал (иногда это происходит, иногда нет) ... кто-нибудь когда-либо сталкивался с чем-то подобным, или, еще лучше, знает как подавить звуковой сигнал? Все, что я делаю, это нажимаю клавишу «1» или «2» над клавиатурой.