次の方法で共有


[方法] InfoPath 2003 オブジェクト モデルを使用してフォーム ウィンドウを操作する方法

InfoPath フォームをプログラムから操作するときは、フォームのウィンドウにアクセスするコードを記述し、ウィンドウに含まれるアイテムの一部をカスタソイズすることができます。InfoPath 2003 互換のオブジェクト モデルでは、WindowsCollection インターフェイスと WindowObject インターフェイスを関連させて使用することにより、フォームのウィンドウにアクセスできます。

InfoPath には、次の 2 種類のウィンドウがあります。

  • ユーザーがフォームにデータを入力するときに使用する編集ウィンドウ。

  • ユーザーがフォーム テンプレートをデザインするときに使用するデザイン ウィンドウ。

フォーム テンプレートのコードを書くときに便利な機能を備えているのは編集ウィンドウです。参照する WindowObject インスタンスを使用して、さまざまなプロパティとメソッドにアクセスし、フォーム編集の操作性をカスタマイズすることができます。

WindowsCollection インターフェイスの概要

WindowsCollection インターフェイスには、次のプロパティがあります。フォーム テンプレートの開発者は、これらのプロパティを使用して、フォーム テンプレートに含まれている WindowObject インスタンスを管理できます。

名前 説明

Count プロパティ

コレクションに含まれている Window オブジェクトの数を返します。

Item プロパティ

指定した Window オブジェクトへの参照を返します。

メモメモ :
Visual C# では、Item プロパティを呼び出す代わりに、インデクサを使用してコレクションにアクセスします (たとえば、thisApplication.Windows[0].Caption)。

Window オブジェクトの概要

WindowObject インターフェイスには、次のメソッドとプロパティがあります。フォームの開発者は、これらを使用して InfoPath ウィンドウを操作できます。これらのメソッドとプロパティに対するサポートは、操作しているウィンドウの種類 (XdWindowType) によって異なります。一部のメソッドとプロパティは、編集ウィンドウ (XdWindowType.xdEditorWindow) のみを操作します。残りのメソッドとプロパティは、編集ウィンドウとデザイン ウィンドウ (XdWindowType.xdDesignerWindow) の両方を操作します。さらに、すべての InfoPath オブジェクト モデルのメンバと同様に、フォーム テンプレートから呼び出される場合、メソッドとプロパティに対するサポートは、セキュリティ レベルおよびフォームの展開方法によって異なることがあります。

名前 説明 ウィンドウの種類のサポート

Activate メソッド

現在アクティブなウィンドウを指定します。

xdDesignWindow および xdEditorWindow

Active プロパティ

ウィンドウが現在アクティブなウィンドウかどうかを示す Boolean 値を返します。

xdDesignWindow および xdEditorWindow

Caption プロパティ

Window オブジェクトによって表されるウィンドウのキャプション テキストを返す、または設定する読み取り/書き込みプロパティ。

xdEditorWindow のみ

Close メソッド

ウィンドウを閉じます。

xdEditorWindow のみ

CommandBars プロパティ

Microsoft Office CommandBars オブジェクトへの参照を返します。

xdDesignWindow および xdEditorWindow

Height プロパティ

Window オブジェクトによって表されるウィンドウのポイント単位での高さを指定する Long 型整数の読み取り/書き込みプロパティ。

xdDesignWindow および xdEditorWindow

Left プロパティ

Window オブジェクトによって表されるウィンドウのポイント単位での水平方向の位置を指定する Long 型整数の読み取り/書き込みプロパティ。

xdDesignWindow および xdEditorWindow

MailEnvelope プロパティ

MailEnvelopeObject オブジェクトへの参照を返します。

xdEditorWindow のみ

TaskPanes プロパティ

TaskPanesCollection コレクションへの参照を返します。

xdDesignWindow および xdEditorWindow

Top プロパティ

Window オブジェクトによって表されるウィンドウのポイント単位での垂直方向の位置を指定する Long 型整数の読み取り/書き込みプロパティ。

xdDesignWindow および xdEditorWindow

WindowType プロパティ

XdWindowType 列挙に基づいて、ウィンドウの種類を表す数値を返します。

xdDesignWindow および xdEditorWindow

Width プロパティ

Window オブジェクトによって表されるウィンドウのポイント単位での幅を指定する Long 型整数の読み取り/書き込みプロパティ。

xdDesignWindow および xdEditorWindow

WindowState プロパティ

Window オブジェクトによって表されるウィンドウの状態を返す、または設定する XdWindowState 型の読み取り/書き込みプロパティ。

xdDesignWindow および xdEditorWindow

XDocument プロパティ

ウィンドウに関連付けられている _XDocument オブジェクトへの参照を返します。

xdEditorWindow のみ

WindowsCollection インターフェイスおよび Window インターフェイスを使用する

WindowsCollection インターフェイスには、Application インターフェイスの Windows プロパティを通じてアクセスできます。WindowsCollection インターフェイスを使用してフォームのウィンドウにアクセスするときは、インデクサを使用するか (Visual C# の場合)、Item プロパティに Long 型整数を渡して (Visual Basic の場合)、WindowObject インターフェイス インスタンスへの参照を返します。たとえば、次のコードは、WindowsCollection に含まれる最初の WindowObject への参照を設定します。

WindowObject objWindow = thisApplication.Windows[0];
Dim objWindow As WindowObject = thisApplication.Windows(0)

ただし、次のコードに示すとおり、Application インターフェイスの ActiveWindow プロパティを使用すると、 WindowsCollection を介することなく、現在開いているウィンドウに直接アクセスできます。

WindowObject objWindow = thisApplication.ActiveWindow;
Dim objWindow As WindowObject = thisApplication.ActiveWindow
メモメモ :

InfoPath マネージ コード プロジェクトをデバッグするときは、デバッグ ウィンドウがアクティブなので、ActiveWindow プロパティは常に null を返します。

WindowObject は、View インターフェイスの Window プロパティを使用してアクセスすることもできます。このインターフェイスは、フォームの基になる XML ドキュメントに関連付けられています。XDocument インターフェイスの View プロパティは、View オブジェクトにアクセスするために使用します。たとえば、次のコードは、フォームの基になる XML ドキュメントのビューに関連付けられている WindowObject への参照を設定します。

WindowObject objWindow = thisXDocument.View.Window;
Dim objWindow As WindowObject = thisXDocument.View.Window
メモメモ :

Window オブジェクトの一部のプロパティとメソッドは、編集ウィンドウでのみ使用できます。デザイン ウィンドウで使用すると、エラーが発生します。各ウィンドウの種類でサポートされるプロパティとメソッドの一覧については、前に示した表を参照してください。コードで WindowType プロパティを使用すると、現在操作しているウィンドウの種類を確認できます。