リード開発者は、私のアプリを使用すると、方向矢印キーを使用してTableLayoutPanelのTextBox間を移動すると、キーボードからビープ音が鳴ると言います。
しかし、そのような聴覚活動は聞いていません。
これが私のコードです:
// 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;
}
}
...しかし、彼はまだビープ音を聞きます(私は聞きません)。
彼はアラスカにいて、Windows7を使用しています。私はカリフォルニアにいて、XPを使用しています。いくつかの組み合わせ/不一致に問題があるかどうかはわかりません...
もう一度更新
これは一部の人にとっては衝撃的かもしれませんが、アラスカ/カリフォルニアの切断はそれとは何の関係もありません。ビープ音も聞こえますが、矢印キーからではありません。TextBoxに値が入力され、そのテキストボックスにすでに文字が含まれている場合は、フォーカスが次のtextBoxに移動され、そこに値が入力されます(これが、これを発生させるコードです)。しかし、イライラするビープ音はランダムに聞こえます-ビープ音が鳴るときのパターンを理解していません(時々鳴る、時々鳴らない)...誰かがそのようなものに出くわしたことがありますか、もっと良いことに、知っていますビープ音を抑える方法は?私がしているのは、キーボードの上にある「1」または「2」キーを押すことだけです。