• ベストアンサー

VB タブページの自動切り替え方法(マウスカーソル

質問よろしくお願いします。環境はVisualBasic 2008です。 タブコントロール内にいくつかのタブページがあるとして、タブの見出し部分(タブページではない)にマウスカーソルがあったらそのタブをアクティブにする(選択された状態にする)にはどのようにすればいいのでしょうか。 ようするに、マウスカーソルによってタブを自動的に切り替えたいのです。 MouseHoverイベントなどで試していますが、TabPage1もTabPage2もクリック情報をみるとTabControl1をクリックしたことになっていて、判定により特定のタブをアクティブにすることができません。 ぜひご教授願います。

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

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

TabControlのMouseMoveイベントのほうがいいかもしれないですよ   Private Sub TabControl1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseMove     Dim n As Integer     ' (円記号)バックスラッシュ演算子で割り算の商を求める     ' マウスの位置Xを tabの幅で除算してどのタブの上にいるか判定     n = e.Location.X \ TabControl1.ItemSize.Width     ' 現在の選択と違うなら変更     If n <> TabControl1.SelectedIndex And n < TabControl1.TabCount Then       TabControl1.SelectedIndex = n     End If   End Sub といった具合です MouseHoverの場合コントロール内で移動してから停止しても再度のイベントが発生しないようで思わしくありませんね

tabetemohuenai
質問者

お礼

私のしたかったことはまさにこのことでした。 途中からマウスポインタの座標を用いる方法でないと実現できないのではないかと悩んでおりました。 サンプルソースまで記述していただいて誠に感謝しております。 ネット上で調べてもなかなか出てきませんでしたので参考にする方は多いと思います。 とても勉強になりました。ありがとうございました。

関連するQ&A

  • TabControlのタブをクリックしたときのイベントは?

    TabControlのタブをクリックしたときにイベントを発生させたいのですが、TabControlのメンバに該当するようなイベントが見つかりませんでした。 Tabpageメンバも見てみましたが無かったように思います。 TabControlのタブをクリックしたときのイベントは無いということでしょうか。

  • VB.Net Tabコントロール中のすべてのタブで

    お世話になります。 Visual Studio 2012 を Windows 7 64Bit  にて使用しております。 Tabコントロールの全てのタブのタグ(Tag) に値を設定しており、変数と各タブページに格納してあるTag の値が一致したら、そのタブページのインデックスを取得できればと思っておりますが、 For Each Next 文にてそれをどう実現すればいいか困っております。 以下の文は プロパティ的にはめちゃくちゃですが、ニュアンスとして、こんな感じで実現できればと思っております。 指定タブコントロールの全てのタブの中でTagの値が 123 のタブがあったら、そのタブインデックスを取得する     Dim Flg As Integer = 0     For Each TabPage In Me.TabControl1.TabPages         If TabPage.Tag = 123 Then             Flg = TabPage.Index()             Exit For         End If     Next 何卒よろしくお願いいたします。

  • 【VB】タブ切り替え時のイベント

    いつもお世話になります。バージョンはVB2005です。 フォームにTabControlを配置し、適当にタブ(TabPage1~3)を追加しています。 それぞれのタブを切り替えたときに発生するイベントがわかりません。(><) Clickイベント、CursorChangedイベント、Gotfocusなどなどいろいろ試してみましたが駄目でした。 おわかりの方、どうかご教授ください。

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

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

  • 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 を使用しても、タブページが移動した後に、ブレーク(コールされてしまう)してしまいます・・・。 よろしくお願い致します。

  • VB2005でのTabControlについて

    VB2005でTabControlを使用しているのですが、 タブ部分にフォーカスを移し、尚かつクリックした時のように四角い点線でフォーカスを移したタブを囲うにはどうしたらよいのでしょうか? 単にフォーカスを合わせるだけなら Me.TabPage1.Focus() と書くだけで良かったのですが、どうにも点線がつきません。 分かる方がいらっしゃいましたらご回答宜しくお願い致します。

  • タブコントロールのタブの位置と大きさが、わかりません・・・・

    タブコントロールのタブの位置と大きさが、わかりません・・・・ タブコントロールの選択されたタブのタブの部分です、 図に表すと、 _____________ |この部分です|_____________________ |                     | |                     | |                     | TabControl1.SelectedTab.Leftでは、だめでした。 タブコントロールの上の出ている小さい四角の 位置と大きさを、教えてください、 お願いします。

  • Windows10のディスプレイにマウスカーソルが

    Windows10のディスプレイにマウスカーソルが表示されなくなったんですけどどうすれば良いですか? Ctrl+Alt+Delでタスクマネージャーを表示してTabで再起動してもマウスカーソルは表示されません。 ノートパソコンなのでUSBマウスも持っていません。 枠に隠れているのかと思って、右クリックしても左クリックしてもマウスパッド上をグルグルしてもマウスカーソルが見えません。 どうしましょう?

  • カーソル異常?

    昨日から急にカーソルが言うことを聞かなくなりました。 症状1 PCを立ち上げた状態でカーソルのクリックができない時がある。 カーソル移動はできますが、デスクトップ上のファイルなどをクリックできません。 症状2 Google Chromeを使用中、「戻る」をクリックすると新しいタブが開く。 症状3 タブをシングルクリックするとタブがクローズしてしまう。(通常はシングルクリックだとタブの選択) 症状4 「その他のブックマーク」をクリックすると、登録されているブックマークを全部開こうとする。(「○○○個のタブを開きます。本当によろしいですか」と聞かれる。 症状5 デスクトップ上のクリックが反応しないので、PCを落とすこともできない。 症状6 新しいタブを開くと、カーソルが勝手にスクロール状態になる。 マウスを抜き差ししたり、再起動してみても全然改善されません。 マウスがだめなのか、Google Chromeがだめなのかわかりません。 本当にわからなくて困っています。 助けてください。 宜しくお願いします。

  • カーソルを自動に

    今晩は。 パスワードなどを入力する欄(白い四角いところ)や、住所などを入力 するようなとき、マウスで白いところをクリックしてカーソルを表示 させずに、自動的にHPを表示したら、カーソルが表示されるような 方法はありますでしようか? また、例えばIDを入力して、別の四角い マスにパスワードを入力するような場合、今はいちいちマウスでカーソ ルをいどうしていますが、リターンキーを押したりするだけ(マウス抜きで)カーソルの位置がきれ変わる方法はないのでしょうか?

専門家に質問してみよう