- 締切済み
VB.NET2003でのTABControlイベントについて
TabControlの処理について教えて下さい。 TabControlの外に貼り付けたTextBoxの内容が変更された場合、タブのページを変える前に問い合わせのメッセージを表示したいのですがうまくいきません。 具体的には、TabControlのSelectedIndexではページが変わった後にイベントが発生するので遅いのです。また、TabPageのValidatingでは、タブ上のコントロールにフォーカスが当たっていないとイベントすら発生しないし... アドバイスをよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
やはり 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 といった具合でしょう
お礼
ご回答ありがとうございます。 やはりTABのページは変わってしまうのですね。 でもTABページ以外のコントロールの変化を見つけるのだからSelectedIndexChangedしかないのでしょうね。 とても参考になりました。有難う御座いました。