XtraScrollableControl 滚动条控件随鼠标滚动
using System;
using System.Windows.Forms;
using DevExpress.XtraEditors; namespace WindowsFormsApplication1 {
public class ScrollHelper { readonly XtraScrollableControl _scrollableControl; public ScrollHelper(XtraScrollableControl scrollableControl) { _scrollableControl = scrollableControl; } public void EnableScrollOnMouseWheel() { _scrollableControl.VisibleChanged += OnVisibleChanged; } void OnVisibleChanged(object sender, EventArgs e) {
_scrollableControl.Select();
UnsubscribeFromMouseWheel(_scrollableControl.Controls);
SubscribeToMouseWheel(_scrollableControl.Controls);
} public void SubscribeToMouseWheel(Control.ControlCollection controls) {
foreach (Control ctrl in controls) {
ctrl.MouseWheel += OnMouseWheel;
SubscribeToMouseWheel(ctrl.Controls);
}
} public void UnsubscribeFromMouseWheel(Control.ControlCollection controls)
{
foreach (Control ctrl in controls) {
ctrl.MouseWheel -= OnMouseWheel;
UnsubscribeFromMouseWheel(ctrl.Controls);
}
} void OnMouseWheel(object sender, MouseEventArgs e) {
DevExpress.Utils.DXMouseEventArgs.GetMouseArgs(e).Handled = true;
var scrollValue = _scrollableControl.VerticalScroll.Value;
var largeChange = _scrollableControl.VerticalScroll.LargeChange;
if (e.Delta < )
_scrollableControl.VerticalScroll.Value += _scrollableControl.VerticalScroll.LargeChange;
else
if (scrollValue < largeChange) { _scrollableControl.VerticalScroll.Value = ; }
else { _scrollableControl.VerticalScroll.Value -= largeChange; }
} public void DisableScrollOnMouseWheel() {
_scrollableControl.VisibleChanged -= OnVisibleChanged;
UnsubscribeFromMouseWheel(_scrollableControl.Controls);
} }
}
调用方法:
private ScrollHelper _scrollHelper;
public 构造函数()
{
InitializeComponent();
_scrollHelper = new ScrollHelper(xtraScrollableControl1);
_scrollHelper.EnableScrollOnMouseWheel();
}
XtraScrollableControl 滚动条控件随鼠标滚动的更多相关文章
- 解决ScrollViewer嵌套的DataGrid、ListBox等控件的鼠标滚动事件无效
C# 中,两个ScrollViewer嵌套在一起或者ScrollViewer里面嵌套一个DataGrid.ListBox.Listview(控件本身有scrollviewer)的时候,我们本想要的效果 ...
- MFC编程入门之二十六(常用控件:滚动条控件ScrollBar)
回顾上一节,讲的是组合框控件Combo Box的使用.本节详解滚动条控件Scroll Bar的相关内容. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框和组合 ...
- VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)
回顾上一节,鸡啄米讲的是组合框控件Combo Box的使用.本节详解滚动条控件Scroll Bar的相关内容. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框 ...
- VS2010-MFC(常用控件:滚动条控件Scroll Bar)
转自:http://www.jizhuomi.com/software/191.html 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框和组合框设置了相应属性 ...
- 自己开发基于c#的垂直滚动条控件
由于Visual Studio工具箱中自带滚动条控件外观太老,而且没有颜色外观属性可设置. 所以自己就试着开发一个垂直的滚动条,它可以用来控制TextBox的滚动. 由于代码比较多,源文件已经打包到网 ...
- javascript控件开发之滚动条控件
首先,基于行前几篇开发的的框架,我们在目录 component\ui\下添加文件 com.ui.scrollBar.js, 在文件中定义com.ui.scrollBar类,继承com.ui.windo ...
- Qt列表等控件实现平滑滚动&deepin启动器存在的问题
Qt列表等控件实现平滑滚动 Qt自带的的列表控件是不能平滑滚动的,但如果滚动速度快的话很容易引起视线丢失,体验效果很差.本篇主要讲述如何在Qt中对列表控件加入平滑滚动.文中以QScrollArea控件 ...
- WPF ItemsControl 控件支持鼠标滚轮滑动
此文章意在解决在WPF中ItemsControl类型的集合控件支持鼠标滚轮操作,并可控制滚动的速度. 第一步:给ItemsControl添加滚轮事件. this.listBox.AddHandler( ...
- duilib List控件,横向滚动时列表项不移动或者显示错位的bug的修复
转载请说明出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/42264673 关于这个bug的修复我之前写过一篇博客,连接为:http:/ ...
随机推荐
- hdu 1201 18岁生日
#include <stdio.h> int r(int y) { return (y%4==0&&y%100!=0)||(y%400==0); } int f(int y ...
- SQL注入攻击技巧总结
0×01 你要知道目前有哪些数据库 微软公司旗下的: Microsoft SQL server 简称 MS-SQL 或者 SQL SERVER (大型数据库操作,功能和性能异常强大)(一般也是ASP或 ...
- Mongodb For C# "Query" 对象常用的方法
Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.In("name", & ...
- ThinkPHP邮件发送函数示例
ThinkPHP邮件发送函数示例详解 /** * 发送邮件 * @param $tomail * @param $subject * @param $body * @param string $con ...
- font-family属性与字体对齐
css中的font-family属性可以让我们自定义字体.在页面前端,宋体已经明日黄花,号称最贵中文字体的微软雅黑大行其道.英文字体万年不变,依然还是"arial","v ...
- php设置cookie,在js中如何获取
在php中设置cookie. $email="abc@163.com"; setcookie("y_email",$email,time()+3600,&quo ...
- Array和ArrayList互相转换
class Order{ public string orderId; public string orderName; public decimal orderPrice; } public cla ...
- Flume-NG内置计数器(监控)源码级分析
Flume的内置监控怎么整?这个问题有很多人问.目前了解到的信息是可以使用Cloudera Manager.Ganglia有图形的监控工具,以及从浏览器获取json串,或者自定义向其他监控系统汇报信息 ...
- hdu 5183. Negative and Positive (哈希表)
Negative and Positive (NP) Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- 服务器部署之 cap deploy:setup
文章是从我的个人博客上粘贴过来的, 大家也可以访问 www.iwangzheng.com $ cap deploy:setup 执行到这一步的时候会时间较长,可以直接中断 * executing &q ...