4

を閉じて、必要に応じて並べ替えるTabControlことができる があるとします。TabPage1 つを閉じた後に以前に選択したページを再割り当てしたいので、以前のインデックスの記録を保持する必要があります。あなたは最終的に自問します: 変化の前にトリガーするイベントを持つことは可能SelectedIndexですTabControlか?

次に、によって提案されたすべてのイベントを検索し、TabControl見つかった最も近いものは、前のインデックスに関する情報を含まないパラメーターSelectedIndexChangedを取るです。EventArgs

また、イベントを使用して以前のインデックスの記録を保持しようとしましたOnClickが、コントロールのクローズ機能によりこのアプローチが不可能になったため失敗しました。

なぜこのアプローチは不可能なのですか?タブを閉じると、それも選択されるためSelectedIndex == PreviouIndexDispose()このページが表示され、タブがまったく選択されていないことになります。

最終的にここに来て、同じ質問をすることにしました:変化のにトリガーするイベントを持つことは可能ですか? そうでない場合、以前に選択したインデックスを保持する最善の方法は何ですか?SelectedIndexTabControl

4

1 に答える 1

5

LarsTech が提案したように、私は Deselecting を使用し、次のように進めました。

// Class definition ...
public TabPage PreviousTab { get; private set;}   
private void Deselecting(object sender, TabControlCancelEventArgs e)
{
if (e.TabPage != null)
PreviousTab = e.TabPage;
}
于 2013-06-06T18:47:13.827 に答える