1

スプリッター パネルの制御が失われるという問題があり、元に戻す必要があります。

私のアプリケーションは SplitContainer を使用しています。コントロールがスプリッターの panel2 にデータをロードすると、フォーカスが panel1 に移動します。

tab と shift+tab はパネルとスプリッターの両方で機能する必要があるため、両方のパネルで tabStop = true であるコントロールがあります。

元に戻すには、Panel2 コントロールの GotFocus に Control オブジェクトを追加し、これを panel1 の _enter で使用して panel2 にフォーカスを戻します。ただし、このコントロール オブジェクトをリセットする必要があります。コントロールを戻すと GotFocus が再度呼び出されるため、 panel2 の _leave では実行できません。

4

2 に答える 2

1

私は複数の解決策を試しましたが、最も安全なオプションは、panel2 のコントロールがフォーカスを得るたびに panel1 コントロールのタブ コントロールをオフにし、フォーカスを離れるとオンに戻すように見えました。これにより、アプリケーションのフォーカスが panel1 に移動しなくなります。これにより、コントロールがタブ移動とシフトタブ移動に確実に対応できるようになります。panel2 でフォーカスを強制的にコントロールに戻すと、 gotfocus() が複数回トリガーされ、目的を達成できませんでした

于 2016-07-01T07:21:35.443 に答える