XtraScrollableControl 滚动条控件随鼠标滚动
生活随笔
收集整理的這篇文章主要介紹了
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 < 0)
_scrollableControl.VerticalScroll.Value += _scrollableControl.VerticalScroll.LargeChange;
else
if (scrollValue < largeChange) { _scrollableControl.VerticalScroll.Value = 0; }
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 滚动条控件随鼠标滚动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WebClient UI create
- 下一篇: ddns启用还是禁用