Winform鼠标滑轮控制自定义滚动条

Posted 致林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform鼠标滑轮控制自定义滚动条相关的知识,希望对你有一定的参考价值。

场景:类似QQ聊天的窗体中,需要添加自定义滚动条vScroll。主窗体中panel存放空间,右边有垂直的滚动条vScroll。

问题:已经实现vScroll和Panel.VerticalScroll滚动条联动,但是鼠标滑轮事件不能触发。

原因:Panel不能聚焦,鼠标点击后不能触发wheel事件。

解决方法:点击Panel后vScroll获得焦点,然后自定义鼠标Wheel事件。

代码:

//鼠标滑轮事件
protected override void OnMouseWheel(MouseeventArgs e)
{
     base.OnMouseWheel(e);
     if(e.Delta < 0)
     {
          vScrollBar.Value += vScrollBar.LargeChange;          
     }    
     else
     {
          vScrollBar.Value -= vScrollBar.LargeChange;   
     }
     mPanel.VerticalScroll.value = vScrollbar.Value;
}

//点击panel后vscroll获得焦点
private void Panel_Click(object sender, EventArgs e)
{
     vScrollBar.focus();  
}

 

以上是关于Winform鼠标滑轮控制自定义滚动条的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么设置鼠标滑轮来滚动java滚动条滚动的速度

js,鼠标上下滑轮或者拉动滚动条触发事件

Vue中如何用鼠标滑轮进行横向滑动不显示滚动条

Vue中如何用鼠标滑轮进行横向滑动不显示滚动条

为啥鼠标滑轮可以滚动div里面的内容,手机端手指滑动就不能滑动

“css中滑动背景如何让盒子不滑动”?