次の方法で共有


フォーム ウィンドウを操作する

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 メソッド
ウィンドウをアクティブ化し、ウィンドウにフォーカスを与えます。 DesignerEditor の両方
Active プロパティ
ウィンドウが現在アクティブなウィンドウかどうかを示す Boolean 値を取得します。 DesignerEditor の両方
Caption プロパティ
Window オブジェクトによって表されるウィンドウのキャプション テキストを取得または設定します。 Editor のみ
Close() メソッド
未保存のフォームに対する変更や、未保存の変更内容があるフォームを保存するかどうかを確認し、ウィンドウを閉じます。 Editor のみ
Close(Boolean) メソッド
ウィンドウを閉じます。オプションで、未保存のフォームや、未保存の変更内容があるフォームを保存せずに強制的に閉じます。 Editor のみ
CommandBars プロパティ
ウィンドウに関連付けられている Microsoft Office CommandBars コレクションへの参照を取得します。 DesignerEditor の両方
Height プロパティ
ウィンドウの高さ (ポイント単位) を取得または設定します。 DesignerEditor の両方
Left プロパティ
ウィンドウの水平方向の位置 (ポイント単位) を取得または設定します。 DesignerEditor の両方
MailEnvelope プロパティ
MailEnvelope クラスへの参照を取得します。 Editor のみ
TaskPanes プロパティ
TaskPaneCollection コレクションへの参照を取得します。 DesignerEditor の両方
Top プロパティ
ウィンドウの垂直方向の位置 (ポイント単位) を取得または設定します。 DesignerEditor の両方
Width プロパティ
ウィンドウの幅 (ポイント単位) を取得または設定します。 DesignerEditor の両方
WindowState プロパティ
ウィンドウの状態を WindowState 値として取得または設定します。 DesignerEditor の両方
WindowType プロパティ
ウィンドウの種類を WindowType 列挙値として取得します。 DesignerEditor の両方
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

注:

Window クラスのプロパティとメソッドの一部は、編集ウィンドウの種類専用です。デザイン ウィンドウの種類と共に使用すると、エラーが返されます。 このトピックの前の表に、各ウィンドウの種類でサポートされているプロパティとメソッドを示します。 コードで Window プロパティを使用して、操作しているウィンドウの種類を決定できます。