问题描述
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事件。滚动条的位置到底怎么计算的呢?