設定構成のキーボード ショートカットをキャプチャするために使用するこのテキスト ボックスがあります。低レベルのキーボード フックを使用してキーをキャプチャし、それらが Windows キーなどのアクションを実行できないようにしますが、Alt キーは引き続き入力され、テキスト ボックスのフォーカスが失われます。
Alt キーをブロックして、フォーカスがテキストボックスに変更されないようにするにはどうすればよいですか?
設定構成のキーボード ショートカットをキャプチャするために使用するこのテキスト ボックスがあります。低レベルのキーボード フックを使用してキーをキャプチャし、それらが Windows キーなどのアクションを実行できないようにしますが、Alt キーは引き続き入力され、テキスト ボックスのフォーカスが失われます。
Alt キーをブロックして、フォーカスがテキストボックスに変更されないようにするにはどうすればよいですか?
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt)
{
e.Handled = true;
}
}
keydown イベントに登録し、渡された引数に対してこれを行うことができます:
private void myTextBox_KeyDown(object sender, KeyEventArgs e)
{
if(e.Alt)
e.SuppressKeyPress = true;
}
そして、次のようにイベントに登録します。
this.myTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.myTextBox_KeyDown);
または、C# 1.0 を使用していない場合は、次のように簡略化できます。
this.myTextBox.KeyDown += this.myTextBox_KeyDown;