1

次のコードでタブを切り替えると

tabControl1.SelectTab("MyNextTab");

切り替え元のタブと切り替え先のタブに対してtabPage_Enterを呼び出します。切り替え先のタブに対して呼び出されるようにしたいのですが、切り替え元のタブに対しては呼び出されません。これをオフにするにはどうすればよいですか。私はそれがいつ起こるかを知っているので、私が行うことができる呼び出しがあった場合、そのタブのenterメソッドの呼び出しをオフにすることができ、それを実装することができます。

4

3 に答える 3

2

はい、ボタンを使用して選択したタブを変更すると再現します。TabControl は、SelectedIndex を変更する前に、それ自体にフォーカスを強制します。これは、Validating イベントの問題を回避するために行われたようです。フォーカスの変更によって最初の Enter イベントが生成され、アクティブなタブに対して、タブの変更によって 2 番目の Enter イベントが生成されます。

これを知っていれば、ヘルパーのブール値メンバーを設定して、最初の Enter イベントを無視する必要があることを示すことができます。現在のタブが、選択したいタブではないことを確認してください。完璧な世界では、この動作は問題になりません。フォーカスは実際に最初にアクティブなタブに移動しました

于 2008-12-02T04:06:05.313 に答える
0

チェック内のイベントでコードをラップして、必要なときにのみ処理されるようにします。

それをオフにするコードを書くことができれば、イベントのコードが実行されないようにする状態を設定するコードを書くことができます。

于 2008-12-02T01:24:25.653 に答える
0

アクティブなタブのインデックスとそれを使用した回避策を確認できますか?

于 2008-12-01T23:58:21.850 に答える