在设置DataSource之后,以编程方式将DataGridView滚动到最后一行

时间:2009-08-25 21:07:32

标签: .net winforms

我已经将DatGridView绑定到BindingSource,并且在设置它的DataSource后我试图将其滚动到底部。

绑定源的MoveLast()使最后一行选中,但不向下滚动。我试图设置FirstDisplayedScrollingRowIndex,但它抛出InvalidOperationException并显示消息“没有空间可用于显示行”。

当我稍后调用MoveLast或更改FirstDisplayedScrollingRowIndex时,例如在按钮单击事件中,它运行良好,但我想打开一个新窗口,其中DataGridView的最后一行设置为当前并且对用户可见。

2 个答案:

答案 0 :(得分:3)

听起来像是在构造函数中调用FirstDisplayedScrollingRowIndex?尝试在表单的load事件中执行此操作。最后,您可以在Activate事件中执行此操作并设置一个标志,以便它只在表单完成绘制后执行一次。

答案 1 :(得分:0)

使用表格的“scrollToRowAtIndexPath:atScrollPosition:animated”方法。

所以你可以使用它:

[self.table scrollToRowAtIndexPath:indexPath atScrollPosition:UIScrollPositionMiddle animated:yes];

“atScrollPosition”告诉您希望所选行在屏幕上滚动到哪里。您可以选择UIScrollPositionTop,UIScrollPositionMiddle或UIScrollPositionBottom。

“动画”字段只是表示你是否想要滚动动画,或者只是让它立刻出现在那里,我想。

如果需要,您可以创建自己的indexPath: [NSIndexPath indexPathForRow :(行号或整数值)inSection:0]

“inSection”将是您想要路径的部分,如果您只有一个,只需输入0.大多数表格只有一个部分。