【问题标题】:Programmatically scroll DataGridView to last row after setting it's DataSource将 DataGridView 设置为 DataSource 后,以编程方式将其滚动到最后一行
【发布时间】:2010-11-22 19:01:48
【问题描述】:

我已将 DatGridView 绑定到 BindingSource,并且在将其设置为 DataSource 后尝试将其滚动到底部。

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

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

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      所以你可以像这样使用它:

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

      “atScrollPosition”告诉您希望所选行在屏幕上滚动到的位置。您可以选择 UIScrollPositionTop、UIScrollPositionMiddle 或 UIScrollPositionBottom。

      “动画”字段只是表示您是否希望滚动像它那样被动画化,或者只是让它立即出现在那里,我想。

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

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

      【讨论】:

      猜你喜欢
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多