为DataGridView增加鼠标滚轮功能

#region 鼠标滚动
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "WindowFromPoint")]
        static extern IntPtr WindowFromPoint(Point pt);

        private void dgv_MouseEnter(object sender, EventArgs e)
        {
            this.MouseWheel += dgv_MouseWheel;
        }

        public void dgv_MouseWheel(object sender, MouseEventArgs e)
        {
            Point p = PointToScreen(e.Location);
            if ((WindowFromPoint(p)) == dgv.Handle)//鼠标指针在框内
            {
                if (e.Delta > 0)
                {
                    if (dgv.FirstDisplayedScrollingRowIndex - 5 < 0)
                    {
                        dgv.FirstDisplayedScrollingRowIndex = 0;
                    }
                    else
                    {
                        dgv.FirstDisplayedScrollingRowIndex = dgv.FirstDisplayedScrollingRowIndex - 5;
                    }
                }
                else
                {
                    dgv.FirstDisplayedScrollingRowIndex = dgv.FirstDisplayedScrollingRowIndex + 5;
                }
            }
        } 
        #endregion

  

原文地址:https://www.cnblogs.com/XuPengLB/p/8565438.html