加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用鼠标滚动DataGridView

发布时间:2020-12-15 04:30:20 所属栏目:百科 来源:网络整理
导读:因此,我们都熟悉单击并按住鼠标按钮的功能,然后将鼠标移动到网格的边缘,并且列/行滚动并且选择增加. 我有一个基于DataGridView的控件,由于性能问题,我不得不关闭MultiSelect并自行处理选择过程,现在也禁用了点击保持滚动功能. 有关如何回写此功能的任何建议
因此,我们都熟悉单击并按住鼠标按钮的功能,然后将鼠标移动到网格的边缘,并且列/行滚动并且选择增加.

我有一个基于DataGridView的控件,由于性能问题,我不得不关闭MultiSelect并自行处理选择过程,现在也禁用了点击保持滚动功能.

有关如何回写此功能的任何建议?

我正在考虑使用像MouseLeave事件这样简单的东西,但我不确定如何确定它留下的位置,以及实现动态滚动速度.

解决方法

只需将此代码添加到Form1_Load即可
DataGridView1.MouseWheel += new MouseEventHandler(DataGridView1_MouseWheel);

这个是针对MouseWheel事件的

void DataGridView1_MouseWheel(object sender,MouseEventArgs e)
{
    int currentIndex = this.DataGridView1.FirstDisplayedScrollingRowIndex;
    int scrollLines = SystemInformation.MouseWheelScrollLines;

    if (e.Delta > 0) 
    {
        this.DataGridView1.FirstDisplayedScrollingRowIndex 
            = Math.Max(0,currentIndex - scrollLines);
    }
    else if (e.Delta < 0)
    {
        this.DataGridView1.FirstDisplayedScrollingRowIndex 
            = currentIndex + scrollLines;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读