【发布时间】:2019-09-11 20:20:13
【问题描述】:
在调用ResetBindings 后,我试图阻止DataGridView 滚动。
在更新绑定到它的列表中的值后,我调用ResetBindings。
调用ResetBindings 后,我无法为FirstDisplayedScrollingRowIndex 赋值。
请注意不会抛出异常。
这是我正在使用的代码:
int currentRowIndex = dgvStuff.FirstDisplayedScrollingRowIndex;
dgvStuff.CellEnter -= dgvStuff_CellEnter;
dgvStuff.Scroll -= dgvStuff_Scroll;
bindingSource.ResetBindings(false); // FirstDisplayedScrollingRowIndex value gets modified after this call;
dgvStuff.Scroll += dgvStuff_Scroll;
dgvStuff.CellEnter += dgvStuff_CellEnter;
dgvStuff.FirstDisplayedScrollingRowIndex = currentRowIndex; // This value is not being set;
上面的代码在CellValidating事件中为DataGridView。
单步执行上述代码:
-
currentRowIndex在第一行执行后的值为 12 -
执行
ResetBindings导致FirstDisplayedScrollingRowIndex保持3 的值 -
FirstDisplayedScrollingRowIndex未在最后一行执行后设置为 12
我不确定值 3 的来源,但我知道在调用 ResetBindings 之后它会以某种方式在后台应用。
有人能帮我理解为什么我在调用ResetBindings 后无法修改FirstDisplayedScrollingRowIndex 的值吗?
【问题讨论】:
标签: c# winforms datagridview bindingsource