[ad_1]
こんにちは、親フォームに UserControl を配置します。この UC の内側にはタブ コントロールがあり、各タブには他のコントロールがいくつかあります。フォーカスがタブ コントロールの内側にある場合、タブ キーは親フォーム内の他の要素ではなく、タブ コントロール タブ内のフォーカスを変更します。 .
例:親フォームにはタブコントロールとボタン1があります。タブコントロールには2つのタブがあり、タブ1にはコントロール1とコントロール2が含まれています。 tab2 には Control3 と Control4 が含まれます。
フォーカスがタブ1内のControl2にあり、タブを押すと、フォーカスはボタン1に移動しますが、タブ2内のコントロール3にフォーカスを移動したいです。
何か提案はありますか?事前に感謝します
解決策 1
これを行うべきではありません。実際に行うべきではありません。標準的なウィンドウのフォーカスの「流れ」を覆し、おそらくユーザーを混乱または苛立たせます。 それは確かに私を悩ませるでしょう!
私の知る限り、それを行う唯一の方法は、ユーザーコントロールの外から、タブオーダーの次のコントロールに到達したフォーカスを検出し、それをユーザーコントロールに戻すか、最終コントロールでTABを自分で処理することですシステムに任せる代わりに。
厄介なユーザー エクスペリエンスのための厄介なコード!
解決策 3
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Right) { if (tabControl1.SelectedIndex == 0)//Control2 inside tab1 { TabPage t = tabControl1.TabPages[1]; tabControl1.SelectTab return true; } } if (keyData == Keys.Left) { if (tabControl1.SelectedIndex == 6)//Control2 inside tab1 { TabPage t = tabControl1.TabPages[5]; tabControl1.SelectTab return true; } } return base.ProcessCmdKey(ref msg, keyData); }
[ad_2]
コメント