- ベストアンサー
VB タブページの自動切り替え方法(マウスカーソル
質問よろしくお願いします。環境はVisualBasic 2008です。 タブコントロール内にいくつかのタブページがあるとして、タブの見出し部分(タブページではない)にマウスカーソルがあったらそのタブをアクティブにする(選択された状態にする)にはどのようにすればいいのでしょうか。 ようするに、マウスカーソルによってタブを自動的に切り替えたいのです。 MouseHoverイベントなどで試していますが、TabPage1もTabPage2もクリック情報をみるとTabControl1をクリックしたことになっていて、判定により特定のタブをアクティブにすることができません。 ぜひご教授願います。
- みんなの回答 (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の場合コントロール内で移動してから停止しても再度のイベントが発生しないようで思わしくありませんね
お礼
私のしたかったことはまさにこのことでした。 途中からマウスポインタの座標を用いる方法でないと実現できないのではないかと悩んでおりました。 サンプルソースまで記述していただいて誠に感謝しております。 ネット上で調べてもなかなか出てきませんでしたので参考にする方は多いと思います。 とても勉強になりました。ありがとうございました。