トップ回答者
マウスホイールでタブ移動をしたい

質問
回答
-
コンドルさん、こんにちは
ダッチです。
コンドル さんからの引用 タブコントロールでは、どのようにイベントを取得して 他のコントロールと同様に MouseWheel イベントを利用すればいいと思います。
コンドル さんからの引用 1回転をどのように判断したら良いのでしょうか? これは MouseWheel イベントの引数である MouseEventArgs クラスの Delta プロパティの値を参照すればわかります。
詳細は MSDN を参照してください。簡単に言うと、Delta プロパティの値が、正の値だとホイールを上に回した時で、負の値だとホイールを下に回した時です。
Control.MouseWheel イベント
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.mousewheel(VS.80).aspx
あとはどうやってタブ上でのホイールを検出するかですが、これはタブの領域を取得することで判断できます。
タブ領域の高さは TabControl.ItemSize プロパティから取得できます。ItemSize プロパティはタブのサイズを表します。
タブ領域の幅は TabControl の Width をそのまま使用すればいいと思います。
コードにすると次のようになります。
Code SnippetPrivate Sub TabControl1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseWheel
Dim r As New Rectangle(0, 0, Me.TabControl1.Width, Me.TabControl1.ItemSize.Height)If r.Contains(e.Location) Then
If e.Delta > 0 Then
Console.WriteLine("上回転")
Else
Console.WriteLine("下回転")
End If
End If
End Sub -
Web上にあるMSDNではなく、ローカルにインストールされる、Visual Studio 2008(英語版)のドキュメントでSystem.Windows.Forms.ControlクラスのMouseWheelイベントを確認すると、MoseWheelイベントは以下のようにBrowsableAttribute(false)と定義されているみたいです。なので、デザイナ上のプロパティウィンドウのイベントに表示されないのだと思います。
すべての返信
-
コンドルさん、こんにちは
ダッチです。
コンドル さんからの引用 タブコントロールでは、どのようにイベントを取得して 他のコントロールと同様に MouseWheel イベントを利用すればいいと思います。
コンドル さんからの引用 1回転をどのように判断したら良いのでしょうか? これは MouseWheel イベントの引数である MouseEventArgs クラスの Delta プロパティの値を参照すればわかります。
詳細は MSDN を参照してください。簡単に言うと、Delta プロパティの値が、正の値だとホイールを上に回した時で、負の値だとホイールを下に回した時です。
Control.MouseWheel イベント
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.mousewheel(VS.80).aspx
あとはどうやってタブ上でのホイールを検出するかですが、これはタブの領域を取得することで判断できます。
タブ領域の高さは TabControl.ItemSize プロパティから取得できます。ItemSize プロパティはタブのサイズを表します。
タブ領域の幅は TabControl の Width をそのまま使用すればいいと思います。
コードにすると次のようになります。
Code SnippetPrivate Sub TabControl1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseWheel
Dim r As New Rectangle(0, 0, Me.TabControl1.Width, Me.TabControl1.ItemSize.Height)If r.Contains(e.Location) Then
If e.Delta > 0 Then
Console.WriteLine("上回転")
Else
Console.WriteLine("下回転")
End If
End If
End Sub -
Web上にあるMSDNではなく、ローカルにインストールされる、Visual Studio 2008(英語版)のドキュメントでSystem.Windows.Forms.ControlクラスのMouseWheelイベントを確認すると、MoseWheelイベントは以下のようにBrowsableAttribute(false)と定義されているみたいです。なので、デザイナ上のプロパティウィンドウのイベントに表示されないのだと思います。