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:/ ...
随机推荐
- JavaScript中的位置坐标
参考来源 http://www.cnblogs.com/tugenhua0707/p/4501843.html screenX.screenY:浏览器屏幕水平.垂直坐标(相对于浏览器内整个屏幕,包括地 ...
- The Joys of Conjugate Priors
The Joys of Conjugate Priors (Warning: this post is a bit technical.) Suppose you are a Bayesian rea ...
- 创建gbk编码
NSStringEncoding gbkEncoding =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_1803 ...
- dedecms最新版本修改任意管理员漏洞
此漏洞无视gpc转义,过80sec注入防御. 补充下,不用担心后台找不到.这只是一个demo,都能修改任意数据库了,还怕拿不到SHELL? 起因是全局变量$GLOBALS可以被任意修改,随便看了下,漏 ...
- centos 搭建gitlab
#修改yum源 yum -y install wget cd /etc/yum.repos.d wget -O CentOS-Base.repo http://mirrors.aliyun.com/r ...
- ThinkPHP3.2 行为扩展以及插件机制介绍!
首先行为扩展这个概念是TP架构的核心组成之一,关于行为的解释我就粗略的概括一下吧:TP在从接受到HTTP请求到最终将视图输出,期间经历的很多步骤,这些步骤大家可以在http://document.th ...
- input file美化
<style> a{display:inline-block; width:100px; height:40px; position:relative; overflow:hidden;} ...
- iOS7: 如何获取不变的UDID
如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题.并给出一个获取UDID的工具类,使 ...
- 第11章 使用Vsftpd服务传输文件
章节简述: 本章节先通过介绍文件传输协议来帮助读者理解FTP协议的用处,安装vsftpd服务程序并逐条分析服务文件的配置参数. 完整演示vsftpd服务匿名访问模式.本地用户模式及虚拟用户模式的配置方 ...
- linux 回收站的添加
在~下 .bashrc或者.bash_profile加入 mkdir -p ~/.trash alias rm=trash trash() { mv $@ ...