2009-08-29 34 views
0

我製作了一個在TabPages中使用PictureBox的MDI(選項卡式)應用程序。圖片框有時會比tabpage大,所以出現滾動條。它是用C#使用Windows Forms編寫的。使tabpage不處理鼠標滾輪事件(C#)

在我的標籤頁中,我捕捉並處理MouseWheel事件中的鼠標滾輪事件(我用它來旋轉我在圖片框中繪製的一些對象)。

但是,當我有滾動條,當我旋轉鼠標滾輪時,我的對象旋轉,但是頁面也向下滾動。

如何讓tabpage不處理mousewheel事件,從而使其不向下滾動?我希望它只能在用戶單擊並拖動滾動條時滾動。

回答

1

子類TabPage並重寫WndProc()方法忽略WM_MOUSEWHEEL消息:

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); 
    } 
} 

然後用你的MyTabPage子代替標準TabPage的。

+0

工程!謝謝! PS:有沒有另外一種方法,那不需要我創建另一個課程? – Ove