アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

ぜひご教授願います。

A 回答 (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の場合コントロール内で移動してから停止しても再度のイベントが発生しないようで思わしくありませんね
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/12/14 09:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!