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

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 ぴよ  (社会人) 投稿日時 2011/5/2 12:46:07
もちださん、ご回答ありがとうございました。

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

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

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