|
もりおさん、ありがとうございます。
KeyDown と KeyUp を試してみました。
KeyDown イベントで KeyPress と同じ内容のコードを記述しました。
しかし KeyDown でおこなうと、Enter キーを押したときにビープ音が鳴ります。
KeyPress ですと、e.Handled = true; を最後に記述しますと、ビープ音が消せます。
KeyDown ですと、e.Handled = true; としても、ビープ音が出てしまいます。
KeyUp も KeyDown と同様の結果でした。
どうやらビープ音を消せるのは KeyPress だけのようでした。
Σ(゚Д゚;) はっ・・・!? いいこと思いついたかも・・・
ビープ音を消す処理 (e.Handled = true) だけを KeyPress でおこない、
フォーカスを移す処理を KeyDown でやったらどうなるか、試してみました。
すると解決しました!
KeyPress と KeyDown のふたつのイベントハンドラを設定する必要はありますが、
AutoCompleteMode が SuggestAppend でも、ビープ音なしで次のコントロールに
フォーカスします。
以下、記述したコードです。
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// Enter キーのとき、次のコントロールへフォーカス。
Control control = (Control)sender;
Form form = (Form)control.TopLevelControl;
form.SelectNextControl(control, true, true, true, true);
}
}
private void comboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Enter キーのとき、ビープ音を消すため、e.Handled を true に設定。
if (e.KeyChar == (char)Keys.Enter)
{
e.Handled = true;
}
}
助かりました。大変ありがとうございました。
|