如何将DataGridView中的滚动条显示出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将DataGridView中的滚动条显示出来相关的知识,希望对你有一定的参考价值。

参考技术A 把ScrollBars属性设置为Both追问

我设置过了!还是不显示呀!那是为什么?

追答

明白,这个其实不是DataGridView的问题,实际上滚动条是出现了的,但被其他东西挡住了。如果网格是放在panel上的,网格的anchor设置了之后,会自动跟随Panel变化大小,问题就出现了,有时候会出现网格的宽度过大了,panel显示不下,因此看不到滚动条

本回答被提问者采纳
参考技术B 默认设置,会自动出现的。

C#中的滚动事件

【中文标题】C#中的滚动事件【英文标题】:Scroll Event in C# 【发布时间】:2010-10-24 11:00:27 【问题描述】:

假设我有一个DataGridView 控件,它显示指定表的大约 100 条记录。每次用户向下滚动到最低点时,我都想在我的 DataGridView 后面的 DataSet 添加另外 100 条记录。

我知道 DataGridView 控件有一个类似 private void DataGridView_Scroll(object sender, ScrollEventArgs e) 的滚动事件,并且ScrollEventArgs 给了我ScrollOrientationScrollEventType。但是我如何准确地确定滚动到达滚动条末端的确切时间?

Tnks。

【问题讨论】:

【参考方案1】:

每个 DataGridViewRow 都有一个“Displayed”属性,指示该行当前是否显示在屏幕上。因此,您可以这样做:

if(this.dataGridView1.Rows[this.dataGridView1.Rows.Count - 1].Displayed)

   //last rows is displayed, do what you gotta do

【讨论】:

不完全是我的想法(因为即使滚动按钮还没有到达滚动条的末尾,最后一行也可以看到),但它解决了我的问题。除非有人在接下来的 5 分钟内提出更好的想法,否则我会将您的帖子标记为答案。谢谢。【参考方案2】:

听起来你可能想看看"virtual mode"。数据绑定的工作方式不同,但它非常适合延迟数据获取。

【讨论】:

我看不到 Virtual Mode 属性如何帮助我...我只需要找出用户何时向下滚动到最后一条记录DataGridView. 因为当您滚动时,它会要求您提供更多数据...这不正是您想要实现的吗? 我现在明白你的意思了。如果这是我想要实现的,那么,不完全是。就在我将在 DataGridView 中添加更多数据之前,我想显示一个 MessageBox,并且可能会做更多的事情,所有这些都恰好在滚动按钮到达滚动条末尾时。不过,有趣的想法是,对于具有更好应用程序设计的案例,我会牢记这一点。谢谢。【参考方案3】:

使用 DataReadear 读取一些记录。然后在 DataGridView 的 Scroll 事件中,检查属性 FirstDisplayedScrollingRowIndex 是否接近加载的记录数,再次使用 DataReader 获取另一串行等等。

【讨论】:

以上是关于如何将DataGridView中的滚动条显示出来的主要内容,如果未能解决你的问题,请参考以下文章

winform中如何在点击datagridview的时候不让窗体的滚动条自动滚动

C# 中datagridview中的如何给单元格设置滚动条,是单元格不是整个datagridview

winform DataGridView不显示横向滚动条?

C# FORM 如何使DATAGRIDVIEW始终显示纵向滚动条啊?

c# winform splitcontainer中datagridview滚动条不能显示,求解答~

C# DataGridView 数据显示到最后一行后,如何使滚动条继续向下滚动。