添加修改键以滚动标签页

时间:2011-09-23 09:31:06

标签: c# winforms tabcontrol

是否可以在Ctrl的鼠标滚轮滚动中添加修饰键(例如tabPage)?

编辑:

因为我对需要使用鼠标滚轮的tabPage进行了控制,所以我想在tabPage上的鼠标滚轮滚动处添加一个修改键。这样,用户就可以使用鼠标滚轮来控制控件,并且可以使用tabPage +鼠标滚轮向下或向上滚动Ctrl

2 个答案:

答案 0 :(得分:2)

唯一的方法是从TabPage继承并处理WM_MOUSEWHEEL事件:

public class MyTabPageHandlingCTRL : System.Windows.Forms.TabPage
{
    const int WM_MOUSEWHEEL = 0x20A;

    protected override void WndProc(ref System.Windows.Forms.Message m)
    {

        if (m.HWnd != this.Handle)
            return;
        if (m.Msg == WM_MOUSEWHEEL && 
            (Control.ModifierKeys & Keys.Control) != Keys.Control)
        {
            return; // don't propagate the event
        }
        base.WndProc(ref m);
    }
}

当然,在您的TabControl.TabPages中,您必须添加MyTabPageHandlingCTRL而不是简单的TabPage

答案 1 :(得分:0)

你打算检测鼠标滚动和按住ctrl的时候,你想把它们当作标签更改吗?

为鼠标滚动和keydown,keyup事件创建3个事件处理。 当ctrl关闭时,在一个标志上。当该键启动时否定该标志 当鼠标滚动事件启动时检测标志是否打开,然后执行你的技巧。