InfoPath フォームをプログラムから操作するときは、フォームのウィンドウにアクセスするコードを記述し、ウィンドウに含まれるアイテムの一部をカスタマイズすることができます。 Microsoft.Office.InfoPath 名前空間によって提供される InfoPath オブジェクト モデルは、WindowCollection クラスと関連付けて Window クラスを使用することで、フォームのウィンドウへのアクセスをサポートします。
注:
[!メモ] フォームのウィンドウを操作するクラスは、[ InfoPath エディター フォーム] で作業しているときのみ使用できます。 フォーム テンプレートの [ 互換性] 設定が [ Web ブラウザー フォーム] の場合には、これらのクラスは使用できません。
InfoPath には、次の 2 種類のウィンドウがあります。
ユーザーがフォームにデータを入力するときに使用する編集ウィンドウ。
ユーザーがフォーム テンプレートをデザインするときに使用するデザイン ウィンドウ。
フォーム テンプレートのコードを書くときに便利な機能を備えているのは編集ウィンドウです。現在のウィンドウを表す Window オブジェクトを使用して、さまざまなプロパティとメソッドにアクセスし、フォーム編集の操作性をカスタマイズすることができます。
WindowsCollection クラスの概要
WindowCollection クラスには、次のプロパティがあります。フォーム テンプレートの開発者は、これらのプロパティを使用して、フォームに含まれている Window オブジェクトを管理できます。
名前 | 説明 |
---|---|
Count プロパティ |
コレクションに含まれている Window オブジェクトの数を取得します。 |
Item プロパティ |
指定した Window オブジェクトへの参照を取得します。 |
Window クラスの概要
Window クラスには、次のメソッドとプロパティがあります。フォームの開発者は、これらを使用することにより、InfoPath ウィンドウを操作できます。 これらのメソッドとプロパティのサポートは、操作対象のウィンドウの種類 (WindowType) によって異なります。 メソッドとプロパティの中には、ウィンドウの種類がエディター (WindowType.Editor) でないと機能しないものがあります。 その他のメソッドとプロパティは、ウィンドウの種類がエディターでも、デザイナー (WindowType.Designer) でも機能します。 さらに、InfoPath オブジェクト モデルのすべてのメンバーと同様に、フォーム テンプレートから呼び出す際のメソッドとプロパティのサポートは、セキュリティ レベルおよびフォームのデプロイ方法によって異なります。
名前 | 説明 | ウィンドウの種類のサポート |
---|---|---|
Activate メソッド |
ウィンドウをアクティブ化し、ウィンドウにフォーカスを与えます。 |
Designer と Editor の両方 |
Active プロパティ |
ウィンドウが現在アクティブなウィンドウかどうかを示す Boolean 値を取得します。 |
Designer と Editor の両方 |
Caption プロパティ |
Window オブジェクトによって表されるウィンドウのキャプション テキストを取得または設定します。 |
Editor のみ |
Close() メソッド |
未保存のフォームに対する変更や、未保存の変更内容があるフォームを保存するかどうかを確認し、ウィンドウを閉じます。 |
Editor のみ |
Close(Boolean) メソッド |
ウィンドウを閉じます。オプションで、未保存のフォームや、未保存の変更内容があるフォームを保存せずに強制的に閉じます。 |
Editor のみ |
CommandBars プロパティ |
ウィンドウに関連付けられている Microsoft Office CommandBars コレクションへの参照を取得します。 |
Designer と Editor の両方 |
Height プロパティ |
ウィンドウの高さ (ポイント単位) を取得または設定します。 |
Designer と Editor の両方 |
Left プロパティ |
ウィンドウの水平方向の位置 (ポイント単位) を取得または設定します。 |
Designer と Editor の両方 |
MailEnvelope プロパティ |
MailEnvelope クラスへの参照を取得します。 |
Editor のみ |
TaskPanes プロパティ |
TaskPaneCollection コレクションへの参照を取得します。 |
Designer と Editor の両方 |
Top プロパティ |
ウィンドウの垂直方向の位置 (ポイント単位) を取得または設定します。 |
Designer と Editor の両方 |
Width プロパティ |
ウィンドウの幅 (ポイント単位) を取得または設定します。 |
Designer と Editor の両方 |
WindowState プロパティ |
ウィンドウの状態を WindowState 値として取得または設定します。 |
Designer と Editor の両方 |
WindowType プロパティ |
ウィンドウの種類を WindowType 列挙値として取得します。 |
Designer と Editor の両方 |
XmlForm プロパティ |
ウィンドウに関連付けられた XmlForm オブジェクトへの参照を返します。 |
Editor のみ |
WindowsCollection クラスおよび Window クラスを使用する
WindowCollection クラスには、 Application クラスの Windows プロパティを通じてアクセスできます。 WindowCollection クラスを使用してフォームのウィンドウにアクセスするときは、インデクサーを使用するか (Visual C# の場合)、 Item プロパティに Long 型の整数を渡して (Visual Basic の場合)、 Window オブジェクト インスタンスへの参照を取得します。 たとえば、次のコードは、現在の InfoPath セッションの WindowCollection に含まれている最初の Window オブジェクトへの参照を設定します。
Window myWindow = this.Application.Windows[0];
Dim myWindow As Window = Me.Application.Windows(0)
現在開いているウィンドウには、WindowCollection を介することなく、次のコード行に示すように Application クラスの ActiveWindow プロパティを使用して直接アクセスすることができます。
Window myWindow = this.Application.ActiveWindow;
Dim myWindow As Window = Me.Application.ActiveWindow
Window オブジェクトには、フォームの基になる XML ドキュメントの操作に使用されている現在のビューを表す View クラスの Window プロパティを使用してアクセスすることもできます。 XmlForm クラスの CurrentView プロパティは、現在のビューを表す View オブジェクトにアクセスするために使用されます。 たとえば、次のコードは、現在のビューに関連付けられている Window への参照を設定します。
Window myWindow = this.CurrentView.Window;
Dim myWindow As Window = Me.CurrentView.Window