如何将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)
的滚动事件,并且ScrollEventArg
s 给了我ScrollOrientation
和ScrollEventType
。但是我如何准确地确定滚动到达滚动条末端的确切时间?
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
C# FORM 如何使DATAGRIDVIEW始终显示纵向滚动条啊?