2009-08-29 4 views
0

TabPages内でピクチャボックスを使用するMDI(タブ付き)アプリケーションを作成しました。スクロールバーが表示されるように、ピクチャボックスがタブページより大きくなることがあります。これは、Windowsフォームを使用してC#で書かれています。タブページでマウスイベントを処理しないようにする(C#)

私のタブページの中で、MouseWheelイベントでマウスホイールイベントをキャプチャして処理します(ピクチャボックスで描画するオブジェクトを回転させるために使用します)。

しかし、私はスクロールバーを持っているとき、マウスホイールを回転するとオブジェクトが回転しますが、タブページも下にスクロールします。

どのようにしてタブページをマウスホイールイベントを処理せずにスクロールさせないようにすることができますか?ユーザーがスクロールバーをクリックしてドラッグするだけでスクロール可能にしたい。

答えて

1

サブクラスTabPageとはWM_MOUSEWHEELメッセージを無視するWndProc()メソッドをオーバーライドします。

public class MyTabPage : TabPage 
{ 
    private const int WM_MOUSEWHEEL = 0x20a; 

    protected override void WndProc(ref Message m) 
    { 
    // ignore WM_MOUSEWHEEL events 
    if (m.Msg == WM_MOUSEWHEEL) 
    { 
     return; 
    } 

    base.WndProc(ref m); 
    } 
} 

は、その後、標準 TabPageの代わりにあなたの MyTabPageサブクラスを使用します。

+0

作品!ありがとう! PS:別のクラスを作成する必要がない別の方法がありますか? – Ove

関連する問題