【C#】添加鼠标管轮事件
2016-02-22 10:05
441 查看
对FlowLayoutPanel添加鼠标滚轮事件
在mainform中添加事件
添加滚轮事件函数:
除此之外还要说的一点是,触发鼠标的滚动事件后,处理事件的函数参数 MouseEventArgs e 中有个Delta属性,默认情况下向上滚动e.Delta=120,向下滚动e.Delta=-120。以上的程序还不是特别完美,因为当Panel控件较大而没有显示滚动条时,或滚动条已在最上方而滚轮又是向上滚动,或滚动条已在最下方而滚轮又是向下滚动时,同样会执行Panel.Refresh();Panel.Invalidate();Panel.Update();等窗体重绘代码,占用较多资源。因此可以在执行这些代码前先对Panel的当前状况做判断。
添加FlowLayoutPanel的鼠标进入事件和鼠标点击事件
在mainform中添加事件
his.flowLayoutPanel1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.flowLayoutPanel1_MouseWheel);
添加滚轮事件函数:
private void flowLayoutPanel1_MouseWheel(object sender, MouseEventArgs e) { if (!(flowLayoutPanel1.VerticalScroll.Visible == false || (flowLayoutPanel1.VerticalScroll.Value == 0 && e.Delta > 0) || (flowLayoutPanel1.VerticalScroll.Value == lastRightPanelVerticalScrollValue && e.Delta < 0))) { flowLayoutPanel1.VerticalScroll.Value += 10; lastRightPanelVerticalScrollValue = flowLayoutPanel1.VerticalScroll.Value; flowLayoutPanel1.Refresh(); flowLayoutPanel1.Invalidate(); flowLayoutPanel1.Update(); } }
除此之外还要说的一点是,触发鼠标的滚动事件后,处理事件的函数参数 MouseEventArgs e 中有个Delta属性,默认情况下向上滚动e.Delta=120,向下滚动e.Delta=-120。以上的程序还不是特别完美,因为当Panel控件较大而没有显示滚动条时,或滚动条已在最上方而滚轮又是向上滚动,或滚动条已在最下方而滚轮又是向下滚动时,同样会执行Panel.Refresh();Panel.Invalidate();Panel.Update();等窗体重绘代码,占用较多资源。因此可以在执行这些代码前先对Panel的当前状况做判断。
int lastRightPanelVerticalScrollValue = -1;//为鼠标滚动事件提供一个静态变量,用来存储上次滚动后的VerticalScroll.Value
添加FlowLayoutPanel的鼠标进入事件和鼠标点击事件
private void flowLayoutPanel1_MouseEnter(object sender, EventArgs e) { flowLayoutPanel1.Focus(); } private void flowLayoutPanel1_MouseClick(object sender, MouseEventArgs e) { flowLayoutPanel1.Focus(); }
相关文章推荐
- 【C#】 开机启动/取消开机启动
- C#编程 线程同步
- c# using三种用法
- C#中XML与对象之间的序列化、反序列化
- 讲解C#设计模式编程中享元模式的运用
- C#中窗体渐显渐隐
- C#事件快捷设置
- 详解C#中的反射
- c#对字符串的各种操作
- c#中的数据类型简介(枚举)
- C#中HashTable的用法
- C#遍历DataSet中数据的几种方法总结
- C# XML添加属性和节点
- C#动态调用Web服务的3种方法
- C# 7 新特性-1
- C#ArrayList集合
- C#public/protected/private/internal/protected internal
- C#聊天程序基于HP-SOCKET V1.1最终版
- c#动态加载dll并调用dll中类的方法
- c#实现动态加载Dll