TabControlが変る瞬間イベント(Visual BasicのQ&A)

解決済みの質問

TabControlが変る瞬間イベント

初心者です。vb2005で、Tabcontrol1を所持しています。

このコントロールにタブページは4つ持っています。

タブページのタブ釦をクリックしたときと、タブページにフォーカスがある状態で、
左右釦をクリックした場合、通常ならタブページが変わります。

このタブページが変わる前の瞬間に発生するイベント処理をしたいです。

そしてそのイベント内で、もしタブ内の値がおかしいなら、タブページを移動しないようにしたいです。


TabControl1_Selected_click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.Click
や、
TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged

を使用しても、タブページが移動した後に、ブレーク(コールされてしまう)してしまいます・・・。

よろしくお願い致します。

投稿日時 - 2010-11-12 17:12:14

連想キーワード:

QNo.6314719

困ってます

質問者が選んだベストアンサー

WndProcでTCM_SETCURSEL, WM_KEYDOWN, WM_NCHITTESTを捕獲
http://dobon.net/vb/bbs/log3-15/8361.html

投稿日時 - 2010-11-12 18:22:53

ANo.1

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(1件中 1~1件目)

ANo.2

TabControl 内にある各 TabPage コントロールの Validating イベントを使って、TAB ページ内のコントロールの値を評価するとか。

Private Sub TabPage1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TabPage1.Validating
If Not IsNumeric(TextBox1.Text) Then
e.Cancel = True
End If
End Sub



んでもイベントが呼び出されるきっかけが 「現在の TAB ページから他に移る時」 なので、「他の TAB ページに移る時」 とは違ってしまいます。
つまり他の TAB ページに移るんではなく、フォーム内の別の(例えば TabControl 外のテキストボックスなど)に移ろうとしても Varidating イベントは動いてしまうので、TextBox1 の値が適切じゃなければ TabControl 外のコントロールにも移動できなくなってしまいます。

投稿日時 - 2010-11-13 12:08:22

この質問に関連するQ&A
  • C#にイベントハンドラ(object sender, EventArg
  • C#にイベントハンドラ(object sender, EventArgs e) に引数を追加して、 イベントハンドラに値を渡したいのですが、 どのように記述したらいいのでしょうか? ...
  • VB.NET フォーカスの位置をしる方法
  • VB.NETにてWindowsMobile5.0の開発をしております。 下記のようにテキストボックスにフォーカスがきたら色を変える処理をしてますが、 テキストボックスがたくさんある場合どこがフォーカ...
  • ↓Downキーでフォーカスの移動ができません。
  • ご多忙中申し訳ありません。 TextBoxが複数ありまして、↓キーを使用してフォーカスの移動をタブインデックスに従って変更したいのですが、Enterキーなら順番に移動しますが、Downキーですと何...
合わせてチェックしたい
PR

OKWaveのオススメ