我已经根据其他代码编写了一个自定义控件,其中包括对SetStyle(ControlStyles.Selectable, false);
这可以防止以下代码被调用(如果我删除了上面的行并首先单击“控件”以使其“聚焦”,则可以使用该代码):
protected override void OnMouseWheel(MouseEventArgs e)
{
ScrollBar.Value = Math.Min(ScrollBar.Value - e.Delta, ScrollBar.Maximum - ScrollBar.LargeChange);
LayoutChanged();
}
我的控件不需要关注,因此Selectable=false
是正确的。
感谢您的评论。附加信息:-
我正在运行Windows 7,但是任何解决方案都必须在任何操作系统上都可以使用。
该控件通过Control / ControlBase / BaseControl / BaseStyleControl继承,其中后三个是DevExpress控件。
由于这是一个可以在任何地方使用的控件,所以从知道其要求的Parent获取MouseWheel事件不是一个好主意。
也许有一种方法可以注册第一眼(是否是MessagePreview?),以便在正常处理发生之前捏住MouseWheel事件。