共用方式為


實作 UI 自動化網格控制模式

備註

本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化

本主題介紹實作 IGridProvider的指導方針和慣例,包括屬性、方法和事件的相關信息。 其他參考的連結會列在概觀結尾。

控件 GridPattern 模式是用來支援做為子專案集合容器的控件。 這個元素的子元素必須實現 IGridItemProvider,並組織在可以透過行和列進行遍歷的二維邏輯座標系統中。 如需實作此控制項模式的控制項範例,請參閱 UI 自動化用戶端的控制項模式對應

實作指導方針和慣例

實作 Grid 控制項模式時,請注意下列指導方針和慣例:

  • 網格座標從零開始計算,左上角(或依地區設定為右上角)的座標為(0,0)。

  • 如果儲存格是空的,仍必須傳回UI Automation元素,才能支援該儲存格的 ContainingGrid 屬性。 當方格中的子元素配置類似於不完全的陣列時,就可能發生這種情況(請參閱下面的範例)。

顯示不整齊版面配置的 Windows 檔案總管檢視。 具有空座標的網格控制項範例

  • 如果從邏輯上被視為是網格,那麼即使是單一專案的網格仍然需要實作 IGridProvider。 方格中的子項目數目不重要。

  • 根據提供者的實作方式,隱藏的列和行可能會載入至 UI 自動化樹中,因此會反映在 RowCountColumnCount 屬性中。 如果尚未載入隱藏的數據列和數據行,則不應該計算它們。

  • IGridProvider 不會啟用網格的活躍操作;必須實作 ITransformProvider 才能啟用這項功能。

  • 使用StructureChangedEventHandler偵測網格的結構或版面配置變更,例如已新增、移除或合併的單元格。

  • 使用AutomationFocusChangedEventHandler來追蹤網格中的項目或儲存格的遍歷。

IGridProvider 的必要成員

實作 IGridProvider 介面需要下列屬性和方法。

必要成員 類型 註釋
RowCount 房產 沒有
ColumnCount 房產 沒有
GetItem 方法 沒有

此控制件模式沒有相關聯的事件。

例外狀況

提供者必須擲回下列例外狀況。

例外狀況類型 狀況
ArgumentOutOfRangeException GetItem

- 如果所要求的資料列座標大於 RowCount ,或資料行座標大於 ColumnCount
ArgumentOutOfRangeException GetItem

- 如果所要求的數據列或數據行座標小於零。

另請參閱