タブ削除後の動作について

タグの編集
投稿者 ぴよ  (社会人) 投稿日時 2011/5/2 11:55:32
こんにちは。
いつもここの掲示板には助けられています。

TabControlについて質問です。

TabControlを利用するプログラムを作成しています。
タブの追加、削除はユーザーが実施することとし、
追加されたら、追加タブをアクティブに、
削除されたら1つ左のタブをアクティブにする、という動作にしたいと思っており、
この削除の部分で質問です。

以下のようなプログラムを書きました。
動作結果は意図したものになりますが、
削除した後、一瞬だけ一番左のタブがアクティブになります。
Removeすると、デフォルトで一番左のタブが(インデックス 0 が?)アクティブになるのだと
思うのですが、これを回避する方法はありますでしょうか?
削除する度に一瞬だけ画面がちらついてカッコ悪いので・・・・。

よろしくお願いします。

    
'選択タブのインデックスを取得する 
Dim selectInt As Integer = TabControl1.SelectedIndex

'タブが1つしかなければ、削除しない 
If TabControl1.TabPages.Count > 1 Then

'タブを削除する 
  TabControl1.TabPages.Remove(TabControl1.SelectedTab)

'削除したタブの1つ左をアクティブにする 
  If selectInt <> 0 Then
    TabControl1.SelectTab(selectInt - 1)
  Else
    TabControl1.SelectTab(0)
  End If

End If

投稿者 もちだ  (社会人) 投稿日時 2011/5/2 12:35:20
処理の順番を変えてみてはどうでしょう。
左を選択してから削除するとか。
TabControl1.TabPages.RemoveAt(selectInt)
これで指定インデックスのタブが消せた気がします。
投稿者 ぴよ  (社会人) 投稿日時 2011/5/2 12:46:07
もちださん、ご回答ありがとうございました。

タブの選択を変えてから削除するようにしたら、
うまくいきました。

とても単純なことなのに、悩み始めると頭がかたくなってしまってダメですね。

ありがとうございました。