winform VScrollBar ,HScrollBar的使用

最近项目里要写GDI+其中就有一个用外部ScrollBar代替 dataGridView1内部的ScrollBar的问题。c#

实现的方式是用自定义控件盖住dataGridView内部的ScrollBar。this

 

本文主要讲:scrollBar的使用,达到的效果如图,外部的scrollBar可以和dataGridView或者系统的滚动条同样精确的滚动,同样精确的长度:.net

1 是dataGridView内部的滚动条,至关精确了,滚动到最右边正好全部数据都能显示出来,比例大概是: 拖动条的长度:scrollBar长度 = 显示出的数据的长度:全部数据的长度。code

2.是我实现的外部的VScrollBar.基本知足上述的比例。blog

       

不须要这么精确的,只须要知道ScrollBar的属性以及如何简单使用的请移步:事件

 http://blog.csdn.net/truelove12358/article/details/17309143get

 

 

下面是实现的代码:it

        关键是如何设置属性及滚动事件,io

private void InitScrollBar()
        {
            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.ScrollBars = ScrollBars.Both;
            //this.hScrollBarEx1.Scroll += new ScrollEventHandler(hScrollBarEx1_Scroll);
            this.hScrollBar1.Scroll +=new ScrollEventHandler(hScrollBar1_Scroll);

          }

        private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
        {//关键代码位置
           this.dataGridView1.HorizontalScrollingOffset = hScrollBar1.Value;          Application.DoEvents();
           
         }
相关文章
相关标签/搜索