是否可以在Ctrl
的鼠标滚轮滚动中添加修饰键(例如tabPage
)?
编辑:
因为我对需要使用鼠标滚轮的tabPage
进行了控制,所以我想在tabPage
上的鼠标滚轮滚动处添加一个修改键。这样,用户就可以使用鼠标滚轮来控制控件,并且可以使用tabPage
+鼠标滚轮向下或向上滚动Ctrl
。
答案 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关闭时,在一个标志上。当该键启动时否定该标志 当鼠标滚动事件启动时检测标志是否打开,然后执行你的技巧。