实现 UI 自动化 Grid 控件模式

更新:2007 年 11 月

本主题介绍实现 IGridProvider 的准则和约定,包括有关属性、方法和事件的信息。本概述的结尾列出了指向其他参考资料的链接。

GridPattern 控件模式用于支持可充当子元素集合的容器的控件。该元素的子级必须实现 IGridItemProvider,而且必须在可以按行和列进行遍历的二维逻辑坐标系中进行组织。有关实现此控件模式的控件示例,请参见 UI 自动化客户端的控件模式映射

本主题包括下列各节。

  • 实现准则和约定
  • IGridProvider 必需的成员
  • 异常
  • 相关主题

实现准则和约定

实现 Grid 控件模式时,请注意以下准则和约定:

  • 网格坐标从零开始,其左上角单元格(或者右上角单元格,具体情况取决于区域设置)的坐标为 (0, 0)。

  • 如果某个单元格为空,则必须仍返回 UI 自动化元素,以便支持该单元格的 ContainingGrid 属性。当网格中子元素的布局类似于未对齐的数组时,可能会出现上述情况(请参见下面的示例)。

具有空坐标的 Grid 控件的示例

显示未对齐布局的 Windows 资源管理器视图。

  • 具有单项的网格仍是实现 IGridProvider 所必需的,但前提是它在逻辑上被视为网格。网格中子项的数量是非实体性的。

  • 处于隐藏状态的行和列(具体情况取决于所实现的提供程序)可以加载到 UI 自动化树中,因此将在 RowCountColumnCount 属性中得以反映。如果处于隐藏状态的行和列尚未加载,则不应当对它们进行计数。

  • IGridProvider 不允许对网格进行实时操作;必须实现 ITransformProvider 才能启用此功能。

  • 可以使用 StructureChangedEventHandler 来侦听对网格的结构和布局进行的更改(如添加、移除和合并单元格)。

  • 可以使用 AutomationFocusChangedEventHandler 来跟踪对网格中各项或各个单元格的遍历情况。

IGridProvider 必需的成员

实现 IGridProvider 接口需要以下属性和方法。

必需的成员

类型

说明

RowCount

属性

ColumnCount

属性

GetItem

方法

没有与此控件模式关联的事件。

异常

提供程序必须引发以下异常。

异常类型

条件

ArgumentOutOfRangeException

GetItem

ArgumentOutOfRangeException

GetItem

  • 如果所请求的行坐标和列坐标中的任意一个小于零。

请参见

任务

在 UI 自动化提供程序中支持控件模式

在 UI 自动化中使用缓存

概念

UI 自动化控件模式概述

客户端的 UI 自动化控件模式

实现 UI 自动化 GridItem 控件模式

UI 自动化树概述