UI オートメーション Grid コントロール パターンの実装

Note

このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、Windows Automation API の「UI オートメーション」を参照してください。

このトピックでは、プロパティ、メソッド、イベントに関する情報など、 IGridProviderの実装のためのガイドラインと規則について説明します。 その他のリファレンスへのリンクは、概要の最後に記載します。

GridPattern コントロール パターンは、子要素のコレクションのコンテナーとして機能するコントロールをサポートするために使用します。 この要素の子には IGridItemProvider を実装する必要があります。また、この要素の子は、行と列で表現できる 2 次元の論理座標システムで編成しなければなりません。 このコントロール パターンを実装するコントロールの例については、「 Control Pattern Mapping for UI Automation Clients」をご覧ください。

実装のガイドラインと規則

Grid コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。

  • グリッド座標は 0 から始まり、左上 (ロケールによっては右上) のセルの座標が (0,0) になります。

  • セルが空の場合でも、そのセルの ContainingGrid プロパティをサポートするために、UI オートメーション要素を返す必要があります。 これが可能なのは、グリッド内の子要素のレイアウトが不調和配列に似ている場合です (次の例を参照)。

Windows Explorer view showing ragged layout. 座標が空のグリッド コントロールの例

  • 項目が 1 つのグリッドでも、論理的にグリッドであると見なされる場合は、 IGridProvider を実装する必要があります。 グリッド内の子項目の数は問題ではありません。

  • プロバイダーの実装によっては、非表示の行および列は UI オートメーション ツリーに読み込まれ、RowCount プロパティおよび ColumnCount プロパティに反映されます。 読み込まれていない場合は、非表示の行および列はカウントされません。

  • IGridProvider はグリッドのアクティブな操作を有効にしないため、 ITransformProvider を実装してこの機能を有効にする必要があります。

  • StructureChangedEventHandler を使用すると、追加、削除、マージされたセルなど、グリッドの構造またはレイアウトの変更をリッスンできます。

  • AutomationFocusChangedEventHandler を使用すると、グリッドの項目またはセルの反復処理を追跡できます。

IGridProvider の必須メンバー

IGridProvider インターフェイスの実装時には、次のプロパティとメソッドが必要です。

必須メンバー 種類 メモ
RowCount プロパティ なし
ColumnCount プロパティ なし
GetItem 方法 なし

このコントロール パターンには、関連するイベントがありません。

例外

プロバイダーは、次の例外をスローする必要があります。

例外の種類 条件
ArgumentOutOfRangeException GetItem

- 要求された行座標が RowCount より大きい、または列座標が ColumnCount より大きい。
ArgumentOutOfRangeException GetItem

- 要求された行または列座標が 0 未満である。

関連項目