最近项目里要写GDI+其中就有一个用外部ScrollBar代替 dataGridView1内部的ScrollBar的问题。
实现的方式是用自定义控件盖住dataGridView内部的ScrollBar。
本文主要讲:scrollBar的使用,达到的效果如图,外部的scrollBar能够和dataGridView或者系统的滚动条一样精确的滚动,一样精确的长度:
1 是dataGridView内部的滚动条,相当精确了,滚动到最右边正好所有数据都能显示出来,比例大概是: 拖动条的长度:scrollBar长度 = 显示出的数据的长度:所有数据的长度。
2.是我实现的外部的VScrollBar.基本满足上述的比例。

不需要这么精确的,只需要知道ScrollBar的属性以及如何简单使用的请移步:
http://blog.csdn.net/truelove12358/article/details/17309143
下面是实现的代码:
关键是如何设置属性及滚动事件,
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();
}
分享到:
相关推荐
在.NET Framework中,C#提供了一系列的控件用于构建用户界面,其中HScrollBar(水平滚动条)和VScrollBar(垂直滚动条)是常见的导航控件,用于浏览大范围的数据或内容。本文将深入探讨如何自定义C#中的HScrollBar和...
本示例将深入探讨如何在C# Winform应用中实现和使用滚动条,以便用户可以更轻松地控制视图。滚动条分为水平滚动条(Horizontal Scroll Bar, HScrollBar)和垂直滚动条(Vertical Scroll Bar, VScrollBar),它们都...
为了自定义滚动条,我们需要覆盖`VScrollBar`或`HScrollBar`控件的`OnPaint`方法,并在其中添加自定义的绘制代码。首先,创建一个继承自`VScrollBar`或`HScrollBar`的新类: ```csharp public class ...
为了实现这个功能,我们需要在Panel控件上添加一个滚动条(VScrollBar或HScrollBar),并将其关联到Panel的滚动属性。 1. 首先,确保在设计视图中添加了一个Panel控件和一个Vertical滚动条(VScrollBar)。设置...
在WinForm中,我们通常使用`System.Windows.Forms.VScrollBar`或`System.Windows.Forms.HScrollBar`来创建垂直或水平滚动条。但若要自定义滚动条的外观和行为,我们就需要使用自绘(Custom Painting)技术。 1. **...
首先,滚动条在Winform中是由`VScrollBar`(垂直滚动条)和`HScrollBar`(水平滚动条)控件提供的。这些控件默认具有Windows操作系统的标准样式,但通过继承和重写一些关键方法,我们可以实现自定义外观。 1. **...
- 滚动条使用`hscrollBar`和`vscrollBar`作为前缀,如`hsbImage`和`vsbImage`。 8. **计时器**: - 使用`tmr`作为Timer的前缀,如`tmrCount`。 9. **对话框**: - 对话框控件通常有特定的命名约定,例如`...
- `HscrollBar`和`VscrollBar`可以表示水平和垂直滚动条,如`hsbhsbImage`和`vsbvsbImage`。 10. **计时器和对话框**: - `Timer`可以是`tmrtmrCount`,表示计数器;`DateTimePicker`用`dtpdtpStartDate`表示起始...
16、HScrollBar 控件和 VScrollBar控件的使用 13 17、OpenFileDialog 控件 13 18、SaveFileDialog 控件 14 19、FontDialog 控件 14 20、ColorDialog控件 14 21、PrintDialog控件和 PrintDocument 控件 15 22、用户...
【C# Winform基本控件及程序应用】实验主要涵盖了Winform界面开发中常见的控件使用和事件处理,旨在帮助学生深入理解C#编程中GUI(图形用户界面)的构建和交互。以下是对实验涉及的知识点的详细说明: 1. **控件...
20. **VscrollBar (vsb)** - **定义**:垂直滚动条控件。 - **示例**:`vsbImage` 21. **Timer (tmr)** - **定义**:定时器控件,用于定期执行任务。 - **示例**:`tmrCount` 22. **ImageList (ilst)** - ...
- `vsc` 用于垂直滚动条(VScrollBar) 此外,还可以结合控件的功能或它在界面中的作用来进一步细化命名。例如,一个用于显示消息的标签可以命名为`lblMessage`,一个用于保存操作的按钮可以命名为`btnSave`,...
- **水平滚动条(HscrollBar)**:使用前缀`hsb`,例如`hsbImage`。 - **垂直滚动条(VscrollBar)**:使用前缀`vsb`,例如`vsbImage`。 - **计时器(Timer)**:使用前缀`tmr`,例如`tmrCount`。 - **图像列表...
* VScrollBar:vsb * Timer:tmr * ImageList:ilst * ToolBar:tlb * StatusBar:stb * OpenFileDialog:odlg * SaveFileDialog:sdlg * FontDialog:fdlg * ColorDialog:cdlg * PrintDialog:pdlg * ...
2. **hsc (HScrollBar)**:水平滚动条控件,用于水平滚动。 3. **prg (PropertyGrid)**:属性网格控件,用于编辑和显示对象属性。 4. **spl (Splitter)**:分割器控件,用于调整容器大小。 5. **trb (TrackBar)**:...
在C#编程中,为了提高代码的可读性和编写效率,开发者通常会使用控件的简写形式。这些简写是根据控件的全称进行缩写,方便快速输入和理解。以下是一些常见的C#控件及其简写: 1. Button - btn:用于创建点击触发...
5. **hscrollBar1**和**VScrollBar**:水平和垂直滑动条,用于浏览或调整内容。`Maximum`和`Minimum`分别设定范围的上限和下限,`value`属性表示当前位置。`scroll`事件在用户移动滚动框时触发,`ValueChanged`事件...
集合 集合的使用 集合可以看成是可以随意添加的数组,因此凡是在使用数组的场合,都可以 使用集合。而且集合的元素可以是任意对象,操作也比数组灵活的多。 使用集合时,必须注意集合的生命期问题。如果有两个集合 ...
在C#编程中,遵循一套清晰的命名规范...这些简写命名规范在C#编程中广泛使用,它们不仅帮助开发者快速识别变量和控件的用途,而且在团队协作中可以提高代码的一致性。遵循这些规范将使代码更加整洁,更易于理解和维护。
HScrollBar控件和 VScrollBar控件的使用 - **HScrollBar** 和 **VScrollBar** 控件用于水平或垂直滚动。 - **Value属性**:获取或设置当前值。 - **Minimum/Maximum属性**:设置最小值和最大值。 - **Small...