次の方法で共有


UI オートメーション グリッド コントロール パターンの実装

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

このトピックでは、プロパティ、メソッド、イベントに関する情報など、IGridProviderを実装するためのガイドラインと規則について説明します。 概要の最後に、その他の参照へのリンクが一覧表示されます。

GridPattern コントロール パターンは、子要素のコレクションのコンテナーとして機能するコントロールをサポートするために使用されます。 この要素の子は、 IGridItemProvider を実装し、行と列で走査できる 2 次元の論理座標系で編成する必要があります。 このコントロール パターンを実装するコントロールの例については、「UI オートメーション クライアントのコントロール パターン マッピング 」を参照してください。

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

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

  • グリッド座標は 0 から始まります。左上 (またはロケールに応じて右上のセル) に座標 (0, 0) があります。

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

不規則なレイアウトを示す Windows エクスプローラー ビュー。 空の座標を持つグリッド コントロールの例

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

  • プロバイダーの実装によっては、非表示の行と列が UI オートメーション ツリーに読み込まれる可能性があるため、 RowCount プロパティと ColumnCount プロパティに反映されます。 非表示の行と列がまだ読み込まれていない場合は、カウントしないでください。

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

  • StructureChangedEventHandlerを使用して、セルの追加、削除、または結合など、グリッドの構造やレイアウト変更を監視します。

  • AutomationFocusChangedEventHandlerを使用して、グリッドの項目またはセルのトラバーサルを追跡します。

IGridProvider の必須メンバー

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

必須メンバー タイプ 注記
RowCount プロパティ 無し
ColumnCount プロパティ 無し
GetItem メソッド 無し

このコントロール パターンには、関連付けられたイベントはありません。

例外

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

例外の種類 条件
ArgumentOutOfRangeException GetItem

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

- 要求された行または列のいずれかの座標が 0 未満の場合。

こちらも参照ください