• 締切済み

VB.NET2003でのTABControlイベントについて

TabControlの処理について教えて下さい。 TabControlの外に貼り付けたTextBoxの内容が変更された場合、タブのページを変える前に問い合わせのメッセージを表示したいのですがうまくいきません。 具体的には、TabControlのSelectedIndexではページが変わった後にイベントが発生するので遅いのです。また、TabPageのValidatingでは、タブ上のコントロールにフォーカスが当たっていないとイベントすら発生しないし... アドバイスをよろしくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

やはり SelectIndeChangeedイベント辺りしかないように思います MouseDownもClickも SelectedIndexChangedの後でしか呼ばれないですよね Formの Newプロシージャの中でIntializeComponentを呼び出した後に 現在のSelectedIndexを保存しておき SelectedIndexChangedイベントに来た際にチェックするようにしてはいかがでしょう Sub SelectedChangeed(引数省略) handlers TabControl1.SelectedChangeed Static bFlag as Boolean = False ' 再帰で呼ばれたときの対策 if bFlag then Exit Sub if myIndex<>0 then if myTextBox.Text<>"123" then ' 再帰対策 bFlag = True TabControl1.SelectedIndex = 0 bFlag = False end if end if End Sub といった具合でしょう

wish_xasp
質問者

お礼

ご回答ありがとうございます。 やはりTABのページは変わってしまうのですね。 でもTABページ以外のコントロールの変化を見つけるのだからSelectedIndexChangedしかないのでしょうね。 とても参考になりました。有難う御座いました。

関連するQ&A