添加修改键来滚动选项卡页面

本文关键字:选项 滚动 修改 添加 | 更新日期: 2023-09-27 18:09:39

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

编辑:

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

添加修改键来滚动选项卡页面

唯一的方法是继承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

您是否打算检测鼠标滚动和按住CTRL时,您想将它们视为TAB更改?

为鼠标滚动和keydown, keyup事件创建3个事件处理。当按下CTRL键时,在一个标志上。当键起时取消标志当鼠标滚动事件启动时,检测到标志是否打开,然后执行您的技巧。