次の方法で共有


HtmlTaskPane クラス

定義

フォームを編集中の現在のウィンドウに関連付けられているカスタム作業ウィンドウを表します。

public ref class HtmlTaskPane abstract : Microsoft::Office::InfoPath::TaskPane
public abstract class HtmlTaskPane : Microsoft.Office.InfoPath.TaskPane
type HtmlTaskPane = class
    inherit TaskPane
Public MustInherit Class HtmlTaskPane
Inherits TaskPane
継承
HtmlTaskPane

次の例では、 クラスの プロパティをItem[]TaskPaneCollection使用して、カスタム作業ウィンドウを表す オブジェクトへのTaskPane参照を取得します。これは型にHtmlTaskPaneキャストされます。 次に、クラスの メソッドをNavigate(String)HtmlTaskPane呼び出して HTML ファイルを開きます。これにより、カスタム作業ウィンドウとして読み込まれている現在の HTML ファイルが置き換えられます。

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

// Navigate to new task pane based on url specified.
oTaskPane.Navigate("taskpane2.html");
' Get a reference to the custom task pane. It is always index (0) in 
' the TaskPanes collection.
Dim oTaskPane As HtmlTaskPane = _
   DirectCast(Me.CurrentView.Window.TaskPanes(0), _
   Microsoft.Office.InfoPath.HtmlTaskPane)

' Navigate to new task pane based on url specified.
oTaskPane.Navigate("taskpane2.html")

次の例では、 クラスの Item プロパティを TaskPaneCollection 使用して、カスタム作業ウィンドウを TaskPane 表す オブジェクトへの参照を取得します。 次に、クラスの プロパティを使用して、カスタム作業ウィンドウの HTML コードで定義されているスクリプト関数をHtmlDocumentHtmlTaskPane呼び出します。

カスタム作業ウィンドウとして指定された HTML ファイルのオブジェクト モデルを操作できるようにするには、Microsoft HTML オブジェクト ライブラリ (MSHTML.dll) により提供されたオブジェクト モデルを使用します。 マネージド コードからこれを行うには、Visual Studio 2012 の [参照の追加] ダイアログ ボックスの [.NET] タブに Microsoft.mshtml への参照を追加します。

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

// Ensure View has loaded before trying to access the task pane.
if (this.CurrentView != null)
{
   // 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;

   // Ensure that the task pane is completely loaded.
   if (custom != null && oHTMLdoc.readyState == "complete")
   {
      // Get a reference to the parent window of the task pane. 
      IHTMLWindow2 window = (IHTMLWindow2)custom.HtmlWindow;

      // Create array to contain method arguments.
      object[] args = new object[] { "ViewID" };

      // Call into script through CLR late binding mechanism
      window.GetType().InvokeMember(
         "SelectView",      // 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
         args);   // method arguments
   }
}
' Ensure View has loaded before trying to access the task pane.
If Not (Me.CurrentView Is Nothing) Then
   ' 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)

   ' Ensure that the task pane is completely loaded.
   If Not (custom Is Nothing And oHTMLdoc.readyState = "complete") Then
      ' Get a reference to the parent window of the task pane.
      Dim window As IHTMLWindow2 = DirectCast(custom.HtmlWindow, _
         IHTMLWindow2

      ' Create array to contain method arguments.
        Dim args As Object()
        args = New Object() {"ViewID"}

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

注釈

InfoPath のカスタム作業ウィンドウは、互換性を [InfoPath エディター] に設定したフォーム テンプレートでのみ使用できます。 フォーム テンプレートの互換性を設定するには、[ファイル] タブ、[フォームのオプション]、[互換性] カテゴリの順にクリックします。

オブジェクトは HtmlTaskPane 、InfoPath カスタム作業ウィンドウを操作するためのプロパティとメソッドを提供し、クラスの TaskPane プロパティも継承します。

InfoPath の作業ウィンドウで使用できるプロパティは、操作する作業ウィンドウの種類によって決まります。 プロパティが TaskPaneTypeTaskPaneType.Htmlを返す場合、作業ウィンドウはカスタム作業ウィンドウであり、使用可能なプロパティとメソッドは クラスによって HtmlTaskPane 提供されます。 プロパティが TaskPaneType 他の値を返す場合、作業ウィンドウは組み込みの作業ウィンドウであり、プロパティは クラスによって TaskPane 提供されます。

プロパティはTaskPaneType 、列挙型によって定義された値を TaskPaneType 返します。 これらの列挙値は、指定した種類の作業ウィンドウへの Item[TaskPaneType] 参照を TaskPaneCollection 返すために、 クラスの プロパティの引数としても使用されます。

カスタム作業ウィンドウを有効にしてフォーム テンプレートに追加するには、最初に 1 つ以上の HTML ファイルを作成し、フォーム テンプレート デザイン モードの [データ] タブの [リソース ファイル] コマンドを使用してリソース ファイルとして追加する必要があります。 次に、HTML ファイルの 1 つをフォーム テンプレートの既定のカスタム作業ウィンドウとして構成する必要があります。[ファイル] タブをクリックし、[フォーム オプション] をクリックし、[プログラミング] カテゴリをクリックし、[カスタム作業ウィンドウの有効化] チェック ボックスを選択します。

: このイベントが HtmlTaskPane 発生したときにビューがまだ読み込まれず、作業ウィンドウがビューに関連付けられているため、イベントのイベント ハンドラー Loading からオブジェクトのプロパティとメソッドを呼び出すことはできません。

コンストラクター

HtmlTaskPane()

フォームを編集中の現在のウィンドウに関連付けられているカスタム作業ウィンドウを表します。

プロパティ

HtmlDocument

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

HtmlWindow

カスタム作業ウィンドウの HTML ドキュメントで作業するための MSHTML IHTMLWindow2 インターフェイスへの参照を取得します。

TaskPaneType

オブジェクトによって TaskPaneType 表される作業ウィンドウの種類を示す値を TaskPane 取得します。

(継承元 TaskPane)
Visible

オブジェクトによって TaskPane 表される作業ウィンドウが Microsoft InfoPath ユーザー インターフェイスに表示されるかどうかを取得または設定します。

(継承元 TaskPane)

メソッド

Navigate(String)

指定した HTML ドキュメントをカスタム作業ウィンドウに読み込みます。

適用対象