本主题提供了用于移动行焦点的方法的信息。这些方法根据指定的行数向前或向后移动焦点。 如果需要把焦点设置到特定的行,则请参阅 为单元格设置焦点 主题,该主题提供了关于确定获得焦点的单元格以及在视图、行、列间移动焦点的总说明。
在行间移动焦点
通常,使用在下表中列出的方法来移动行焦点。 所有这些方法都是由 ColumnView 类声明的,因此当前在 XtraGrid 中可用的所有视图类型都支持这些方法。
方法 | 说明 |
---|---|
ColumnView.MoveFirst | 把焦点移动到视图内的第一个可视行。 |
ColumnView.MoveNext | 把焦点移动到当前获得焦点行的下一行。 |
ColumnView.MovePrev | 把焦点移动到当前获得焦点行的上一行。 |
ColumnView.MoveNextPage | 把焦点移动到下一页 (向前移动视图中所显示的行数)。 |
ColumnView.MovePrevPage | 把焦点移动到上一页 (向后移动视图中所显示的行数)。 |
ColumnView.MoveLast | 把焦点移动到视图内的最后一行。 |
ColumnView.MoveLastVisible | 把焦点移动到最后一个可视行 (没有被隐藏在折叠组内的最末行)。 |
ColumnView.MoveBy | 根据指定的行数移动焦点。 |
注意,上述所有方法,除去 ColumnView.MoveLast 方法之外,都只是在可视行之间移动焦点。 这意味着在使用网格视图时,调用这些方法不会展开已折叠的分组行。 要获得关于自定义导航分组行及其子行的信息,请参阅 处理分组行 主题。 也要注意,上表中的方法不允许把焦点移动到子视图或父视图。 例如,当一个已展开的主控行获得焦点时,调用 ColumnView.MoveNext 方法将把焦点移入相同视图中的下一个主控行。 要学习如何在主控行与细节行之间导航,请参阅 展开和折叠主控行 和 在主控行和细节行中导航 主题。
支持行焦点移动的另一个重要成员是 ColumnView.FocusedRowHandle 属性。 此属性标识视图中当前获得焦点的行。 例如,可以递增或递减 ColumnView.FocusedRowHandle 属性值,而把焦点移动到视图中的下一行或上一行。
下表列出了在移动行焦点时其他有用的成员。 这些成员允许确定当前获得焦点的行是否为视图中的第一行或最后一行,这样,当到这这些行时停止相关的焦点移动。 如果实现了移动行焦点的自定义控件,则可以使用下面的成员来确定何时禁用这些控件。
成员 | 说明 |
---|---|
ColumnView.IsFirstRow | 如果当前获得焦点的行是视图中的第一行,则返回 true。 |
ColumnView.IsLastRow | 如果当前获得焦点的行是视图中的最后一个数据行,则返回 true。 |
ColumnView.IsLastVisibleRow | 如果当前获得焦点的行是视图中的最后一个可视行,则返回 true。 |
BaseView.RowCount | 返回视图中可视行的总数。 |
BaseView.DataRowCount | 返回视图中数据行的数目。 把该值与 ColumnView.FocusedRowHandle 属性值相比较,可以确定当前获得焦点的行是否为视图中的最后一行。 |