DataGridView的scroll事件

问题描述

DataGridView的scroll事件都在什么情况下触发?现在遇到下面的状况:获取DataGridView绑定(datasource)的dataTable1,把另外一个dataTable2数据添加到dataTable1时,竟然会触发scroll事件,为什么呢?是因为DataGridView中按照某列进行排序了吗?

解决方案

解决方案二:
可能是因为总条数变化了
解决方案三:
只要影响到Scroll的变化都会触发
解决方案四:
在程序中没有发现设置选中行的地方,就是默认的第一行。绑定的数据比较多,所以采用分段获取的形式,比如每次只取100条。取数据的时候是按照某列的降序进行取的,当滚动时,满足下面条件时,e.NewValue+dGrdData.DisplayedRowCount(true)>(dGrdData.RowCount/2)会再取100条,添加到绑定的datatable中,以此类推,直到取完为止。现在有两种情况:1、如果datagridview中没有按照其他列进行排序的话,数据获取是正常的。2、如果按照某列进行了排序,第一次滚动获取100条时,数据时正常的,再滚动时,把取的的数据添加到绑定的datatable中时,添加到59条时,会自动触发滚动事件了。是因为datagridview的数据进行了什么排序造成的吗?请帮忙分析一下原因
解决方案五:
引用2楼wyd1520的回复:

只要影响到Scroll的变化都会触发

除了手动滚动外,还有什么操作呢?能否告诉一下。谢谢
解决方案六:
引用4楼pear_2268的回复:

Quote: 引用2楼wyd1520的回复:
只要影响到Scroll的变化都会触发

除了手动滚动外,还有什么操作呢?能否告诉一下。谢谢

这不是手动的问题只要你的Scorll有变化就会触发。如你向里面还有加记录,什么的。倒置滚动条动了。
解决方案七:
引用5楼wyd1520的回复:

Quote: 引用4楼pear_2268的回复:
Quote: 引用2楼wyd1520的回复:
只要影响到Scroll的变化都会触发

除了手动滚动外,还有什么操作呢?能否告诉一下。谢谢

这不是手动的问题只要你的Scorll有变化就会触发。如你向里面还有加记录,什么的。倒置滚动条动了。

大致明白你说的意思了。如果滚动条位于datagridview中的某个中间位置,这时,如果在datagridview的下面一直追加行,滚动条位置会变吗?也就是会触发滚动事件吗?
解决方案八:
引用6楼pear_2268的回复:

Quote: 引用5楼wyd1520的回复:
Quote: 引用4楼pear_2268的回复:
Quote: 引用2楼wyd1520的回复:
只要影响到Scroll的变化都会触发

除了手动滚动外,还有什么操作呢?能否告诉一下。谢谢

这不是手动的问题只要你的Scorll有变化就会触发。如你向里面还有加记录,什么的。倒置滚动条动了。

大致明白你说的意思了。如果滚动条位于datagridview中的某个中间位置,这时,如果在datagridview的下面一直追加行,滚动条位置会变吗?也就是会触发滚动事件吗?

会变的。
解决方案九:
引用7楼wyd1520的回复:

Quote: 引用6楼pear_2268的回复:
Quote: 引用5楼wyd1520的回复:
Quote: 引用4楼pear_2268的回复:
Quote: 引用2楼wyd1520的回复:
只要影响到Scroll的变化都会触发

除了手动滚动外,还有什么操作呢?能否告诉一下。谢谢

这不是手动的问题只要你的Scorll有变化就会触发。如你向里面还有加记录,什么的。倒置滚动条动了。

大致明白你说的意思了。如果滚动条位于datagridview中的某个中间位置,这时,如果在datagridview的下面一直追加行,滚动条位置会变吗?也就是会触发滚动事件吗?

会变的。

那就奇怪了,引用7楼wyd1520的回复:

Quote: 引用6楼pear_2268的回复:
Quote: 引用5楼wyd1520的回复:
Quote: 引用4楼pear_2268的回复:
Quote: 引用2楼wyd1520的回复:
只要影响到Scroll的变化都会触发

除了手动滚动外,还有什么操作呢?能否告诉一下。谢谢

这不是手动的问题只要你的Scorll有变化就会触发。如你向里面还有加记录,什么的。倒置滚动条动了。

大致明白你说的意思了。如果滚动条位于datagridview中的某个中间位置,这时,如果在datagridview的下面一直追加行,滚动条位置会变吗?也就是会触发滚动事件吗?

会变的。

我实际测试的情况来看,没有触发scroll事件。插入数据代码baseTable.Rows.Add(newrow);datagridview中插入的数据,会导致现有datagridview的行进行排序,可能插入到上面或者下面,这个时候插入一定数量时,就会触发scroll事件。滚动条的位置到底怎么计算的呢?

时间: 2024-11-01 02:19:41

DataGridView的scroll事件的相关文章

c#-C# 如和在datagridview的scroll事件判断datagridview是否滑动到最底部?

问题描述 C# 如和在datagridview的scroll事件判断datagridview是否滑动到最底部? C# 如和在datagridview的scroll事件判断datagridview是否滑动到最底部? 解决方案 用 DataGridView..::.VerticalScrollBar 的 (Maximum - LargeChange +1) 和 e.NewValue 比较. 解决方案二: 注意,有时datagridview滑动到最底部时,还会有些空白,感觉没滑动到底部,但已经是到最后

jQuery scroll事件实现监控滚动条分页简单示例

 这篇文章主要介绍了jQuery scroll事件实现监控滚动条分页简单示例,使用ajax加载,同时介绍了(document).height()与$(window).height()的区别,需要的朋友可以参考下 scroll事件适用于window对象,但也可滚动iframe框架与CSS overflow属性设置为scroll的元素.   代码如下: $(document).ready(function () { //本人习惯这样写了     $(window).scroll(function (

window resize和scroll事件的基本优化思路_javascript技巧

同事在项目中使用scroll事件去加载数据,结果IE下悲剧了.给了一个简单优化方法,效果明显. 只要用户改变窗口大小,会对内部一些元素大小重新计算,可能导致整个页面重新渲染,最终导致大量消耗 CPU.比如调用 resize 方法,用户改变窗口大小时会不停的被触发, 低版本的IE 会可能陷入假死状态.window的scroll事件也是如此,鼠标滚动或拖动滚动条,就会不停的触发scroll事件,如果处理的东西多,低版本的IE也会陷入假死状态. 基本的优化思路:在一定的时间之内,只执行一次resize

c#-C#DataGridview双击触发事件

问题描述 C#DataGridview双击触发事件 在DataGridview中,双击触发事件.该怎么写..doblue chilk 属性在哪找. 解决方案 在vs中右键datagridview控件,事件中有很多,找找包含double字样的事件. 比如:dataGridView1_CellDoubleClick.dataGridView1_CellMouseDoubleClick 等等 解决方案二: Gridview控件那么多事件,你可以找找看 解决方案三: 没有这个属性,你可以通过脚本触发双击

scroll事件实现监控滚动条并分页显示(zepto.js)_javascript技巧

需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页底部自动加载下一页并发加载埋点. 实现:首先理解三个概念,分别是contentH,viewH,scrollTop. contentH:即所要滑动的元素内容的高度,包括可见部分以及滚动条下面的不可见部分. ViewH:即我们看到的这个DIV的高度,不包括可见部分也不包括滚动条下面的不可见部分. scrollTop:即滚动条距离顶部的距离,若scrollTop的值为0,则

jQuery scroll事件实现监控滚动条分页示例_jquery

scroll事件适用于window对象,但也可滚动iframe框架与CSS overflow属性设置为scroll的元素. 复制代码 代码如下: $(document).ready(function () { //本人习惯这样写了    $(window).scroll(function () {        //$(window).scrollTop()这个方法是当前滚动条滚动的距离        //$(window).height()获取当前窗体的高度        //$(docume

急急!!请问给Pannel添加了个VSscrollBar,他的scroll事件怎么实现??

问题描述 急急!!请问给Pannel添加了个VSscrollBar,他的scroll事件怎么实现??pannel才能随着bar被拖动>?? 解决方案 解决方案二:panel自己不就可以有滚动条(autoscroll属性),你干嘛自己添加解决方案三:将panel的autoscroll属性设置成true就可以有滚动条了如果你想重新加一个滚动条,这是给GroupBox加滚动条,参考publicOrderPayManage(){InitializeComponent();foreach(Controlc

winform DataGridView关于SelectionChanged事件的疑问

问题描述 我在cs文件中声明一个datagridView,注册事件(1)在Load事件中绑定数据并将控件添加到Form窗体中,运行后,selectionchanged事件运行了一次.(2)在Load事件中先添加到窗体中并绑定数据,运行后,selectionChanged事件运行了三次.不知道这是为什么?太诡异了吧高人们求指点 解决方案 解决方案二:每次load都+=了,你应该在创建时绑定一次就够了,绑定多次就会执行多次解决方案三:publicpartialclassForm2:Form{Data

如何让程序来控件datagridview的新增事件

问题描述 有一个datagridview我把焦点选到新增行,这时还没有引也新增的事件,我想用程序写一些数据进去.但赋值后不能引起新增事件.我有什么办法让datagridview认为我是一个新增的动作. 解决方案 解决方案二:激发RowEditing事件解决方案三:不知所云