HScrollBar1和HScrollBar1在DataGridView1中的简单使用

发布于: 2018-07-20    浏览: 4329    作者:Yang

以下是这两个控件使用的关键代码:

privatevoid FrmCustomerManagement_Load(object sender, EventArgs e)

        {

dataGridView1.ScrollBars= ScrollBars.None;//关datagridviwe自带滚动条

            vScrollBar1.Maximum =dataGridView1.Rows.Count - 1;

            vScrollBar1.Minimum = 1;

            vScrollBar1.SmallChange = 1;

            vScrollBar1.LargeChange = 1;  //Large随便了,我都设定的是1


            hScrollBar1.Dock =DockStyle.Bottom;

            int count =dataGridView1.ColumnCount;

            int gridWidth = 0;

            for (int k = 0; k < count; k++)

            {

                gridWidth +=dataGridView1.Columns[k].Width;

            }

            //关键代码位置

            hScrollBar1.Maximum = gridWidth;

            hScrollBar1.Minimum = 0;

            hScrollBar1.SmallChange = gridWidth/ count;

            hScrollBar1.LargeChange =dataGridView1.Width - 5;//微调这里的 5

this.dataGridView1.MouseWheel += newMouseEventHandler(OnMouseWheel);//容器获得焦点的状况的滑动鼠标事件

}

//鼠标滑轮事件

        void OnMouseWheel(object sender,MouseEventArgs e)

        {

            if (e.Delta > 0)

            {

                if ((vScrollBar1.Value - 1)< vScrollBar1.Minimum)

                {

                    vScrollBar1.Value =vScrollBar1.Minimum;

                }

                else

                {

                    vScrollBar1.Value -= 1;

                }

            }

            else

            {

                if ((vScrollBar1.Value + 1)> vScrollBar1.Maximum)

                {

                    vScrollBar1.Value =vScrollBar1.Maximum;

                }


                else

                {

                    vScrollBar1.Value += 1;

                }

            }

           //MessageBox.Show(vScrollBar1.Value.ToString());

            vScrollBar1_Scroll(null, null);

           

       }

//控件的scrill事件

        private void vScrollBar1_Scroll(objectsender, ScrollEventArgs e)

        {

           dataGridView1.FirstDisplayedScrollingRowIndex = vScrollBar1.Value;

        }


        private void hScrollBar1_Scroll(objectsender, ScrollEventArgs e)

        {

           this.dataGridView1.HorizontalScrollingOffset = hScrollBar1.Value;Application.DoEvents();

       }

整个实现思路就是先设置控件的maxmum和minmum,也就是其控件所代表的范围,然后设置LargeChange,也就是滚动大小

vScrollBar1控件是没滑动控件获取它的value值,然后根据value值定义dataGridView1的显示的第一行的下标。

hScrollBar1控件也是根据其value值设置dataGridView1的水平滚动的像素数。

其中的OnMouseWheel方法是监控鼠标的上下滑动,然后取值再执行scroll时间实现滚动效果。



下为完成图:

长沙网站设计|长沙手机网站|长沙软件公司|湖南软件开发|长沙软件定制|长沙软件开发|湖南软件公司|长沙微信小程序|长沙网络公司|长沙软件外包公司|长沙竞价托管

长沙网站设计|长沙手机网站|长沙软件公司|湖南软件开发|长沙软件定制|长沙软件开发|湖南软件公司|长沙微信小程序|长沙网络公司|长沙软件外包公司|长沙竞价托管




文章内容来自网络,版权归原作者所有,如有侵权请联系管理员删除。

在线客服

售前咨询

售后服务

投诉/建议

服务热线
0731-83091505
18874148081