フォームにタブコントロールがあり、キーアップイベントを使用して何かを管理する必要があります。
左または右のボタンを押すとタブページが変わり、タブコントロールのキーボードナビゲーションを無効にしたい。
これを行うことは可能ですか?
フォームにタブコントロールがあり、キーアップイベントを使用して何かを管理する必要があります。
左または右のボタンを押すとタブページが変わり、タブコントロールのキーボードナビゲーションを無効にしたい。
これを行うことは可能ですか?
TabControl を拡張する必要はありません。その KeyDown イベントをサブスクライブして処理するだけです。
tabControl1.KeyDown+=new KeyEventHandler(tabControl1_KeyDown);
private void tabControl1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
{
e.Handled = true;
}
}
tabControl1 はページを変更しません。フォームの KeyUp と tabControl1 は正常に起動します。
あなたはこれを探していると思います。
if (e.KeyCode == Keys.Tab)
{
//your logic
e.SuppressKeyPress();
}
コントロールがキーを押さないように、Form
レベルでこれらのキーを取得し、Handled
プロパティをtrue
( を返すことによって) に設定することをお勧めします。true
このメソッドを に追加しますForm
。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Left || keyData == Keys.Right)
{
// do what you need to do and the
// return true will stop processing
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}