鼠标滚轮控制panel滚动条-飞外

在winform开发中,通过设置Panel的AutoScroll属性来控制滚动条是否显示,但显示滚动条的时候,鼠标的滚轮是无法控制Panel里面的滚动条的,只能控制Form的滚动条,当我们需要控制Panel的滚动条的时候,应该怎么做呢?

1、拖一个Panel到Form里面,修改Name为panel_content,并设置AutoScroll为True

2、在Form的Load事件中添加下面的代码

this.MouseWheel += FormSample_MouseWheel;

3、在Form类中添加FormSample_MouseWheel方法

View Code1/// summary
2///滚动方法
3/// /summary
4/// param /param
5/// param /param
6voidFormSample_MouseWheel(objectsender,MouseEventArgse)
7{
8//获取光标位置
9PointmousePoint=newPoint(e.X,e.Y);
10//换算成相对本窗体的位置
11mousePoint.Offset(this.Location.X,this.Location.Y);
12//判断是否在panel内
13if(panel_content.RectangleToScreen(panel_content.DisplayRectangle).Contains(mousePoint))
14{
15//滚动
16panel_content.AutoScrollPosition=newPoint(0,panel_content.VerticalScroll.Value-e.Delta);
17}
18}

返回导读目录,阅读更多随笔


分割线,以下为博客签名:
软件臭虫情未了 编码一分钟 测试十年功

随笔如有错误或不恰当之处、为希望不误导他人,望大侠们给予批评指正。