次の方法で共有


HtmlTaskPane.HtmlDocument プロパティ

定義

カスタム作業ウィンドウの HTML ドキュメント オブジェクト モデルで作業するための MSHTML IHTMLDocument2 インターフェイスへの参照を取得します。

public:
 abstract property System::Object ^ HtmlDocument { System::Object ^ get(); };
public abstract object HtmlDocument { get; }
member this.HtmlDocument : obj
Public MustOverride ReadOnly Property HtmlDocument As Object

プロパティ値

カスタム作業ウィンドウの HTML ファイルに関連付けられている IHTMLDocument2 オブジェクト。

次の例では、既にフォーム コード ファイルの宣言セクションに using mshtml; または Imports mshtml ディレクティブが記述してあるものとしています。

次の例では、 クラスの HtmlDocument プロパティを HtmlTaskPane 使用して、完全に信頼されたフォームのカスタム作業ウィンドウの HTML ウィンドウ オブジェクトへの参照を設定します。 次に、このコードは、カスタム作業ウィンドウの背景色を変更します。

// Get a reference to the custom task pane. It is always index [0]
// in the TaskPanes collection.
HtmlTaskPane custom = (Microsoft.Office.InfoPath.HtmlTaskPane)
   (this.CurrentView.Window.TaskPanes[0]);

// Get a reference to the custom task pane document and cast to
// the IHTMLDocument2 type.
IHTMLDocument2 oHTMLdoc = (IHTMLDocument2)(custom.HtmlDocument);

// Change custom task pane background color to red.
oHTMLdoc.bgColor = "red";
' Get a reference to the custom task pane. It is always index [0]
' in the TaskPanes collection.
Dim custom As HtmlTaskPane = DirectCast( _
   Me.CurrentView.Window.TaskPanes(0), _
   Microsoft.Office.InfoPath.HtmlTaskPane)

' Get a reference to the custom task pane document and cast to
' the IHTMLDocument2 type.
IHTMLDocument2 oHTMLdoc = _
   DirectCast(custom.HtmlDocument,IHTMLDocument2)

' Change custom task pane background color to red.
oHTMLdoc.bgColor = "red"

次の例では、HtmlTaskPane クラスの HtmlDocument プロパティを使用して、完全に信頼されたフォームのカスタム作業ウィンドウの HTML window オブジェクトへの参照を設定しています。 その後、このコードは、カスタム作業ウィンドウの HTML コードで定義されている TaskPaneSwitchView カスタム関数を呼び出します。

// Get a reference to the custom task pane. It is always index [0]
// in the TaskPanes collection.
HtmlTaskPane custom = (Microsoft.Office.InfoPath.HtmlTaskPane)
   this.CurrentView.Window.TaskPanes[0];

// Get a reference to the custom task pane document.
IHTMLDocument2 oHTMLdoc = (IHTMLDocument2)custom.HtmlDocument;

// Get a reference to the parent window of the task pane.
IHTMLWindow2 window = (IHTMLWindow2)oHTMLdoc.parentWindow;

// Call into script through CLR late binding mechanism.
window.GetType().InvokeMember(
   "TaskPaneSwitchView",      // late bound method name.
   System.Reflection.BindingFlags.InvokeMethod | // binding flags
   System.Reflection.BindingFlags.DeclaredOnly |
   System.Reflection.BindingFlags.Public |
   System.Reflection.BindingFlags.Instance,
   null,     // binder object
   window,   // target object
   null);   // method arguments
' Get a reference to the custom task pane. It is always index (0)
' in the TaskPanes collection.
Dim custom As HtmlTaskPane = _
   DirectCast(Me.CurrentView.Window.TaskPanes(0), _
   Microsoft.Office.InfoPath.HtmlTaskPane)

' Get a reference to the custom task pane document.
Dim oHTMLdoc As IHTMLDocument2 = DirectCast(
   custom.HtmlDocument, IHTMLDocument2)

  ' Get a reference to the parent window of the task pane.
   Dim window As IHTMLWindow2 = DirectCast(oHTMLdoc.parentWindow, _
      IHTMLWindow2

  ' Call into script through CLR late binding mechanism.
  window.GetType().InvokeMember( _
   "TaskPaneSwitchView", _
   System.Reflection.BindingFlags.InvokeMethod Or _
   System.Reflection.BindingFlags.DeclaredOnly Or _
   System.Reflection.BindingFlags.Public Or _
   System.Reflection.BindingFlags.Instance, _
   Nothing, _
   window, _
   Nothing)

注釈

HtmlDocument プロパティを使用すると、次の 2 番目の例のように、作業ウィンドウの HTML コードに含まれるスクリプト関数を遅延バインディングで呼び出すことができます。 また、IHTMLDocument2 インターフェイスが提供するプロパティとメソッドを使用して、作業ウィンドウの HTML コードを直接操作することもできます。

HtmlDocument プロパティによって返される IHTMLDocument2 オブジェクトを操作するには、Visual Studio 2012 の [参照の追加] ダイアログ ボックスの [.NET] タブで Microsoft.mshtml への参照を追加する必要があります。 さらに、HtmlDocument プロパティによって返されたオブジェクトを IHTMLDocument2 型にキャストしなければなりません。

このメンバは、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームだけがアクセスできます。

この型またはメンバーには、Microsoft InfoPath Filler で開いたフォームで実行されるコードからのみアクセスできます。

適用対象