添加修改键来滚动选项卡页面
本文关键字:选项 滚动 修改 添加 | 更新日期: 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键时,在一个标志上。当键起时取消标志当鼠标滚动事件启动时,检测到标志是否打开,然后执行您的技巧。