Share via


HtmlTaskPane 클래스

양식을 편집하는 현재 창과 연결된 사용자 지정 작업창을 나타냅니다.

상속 계층 구조

System.Object
  Microsoft.Office.InfoPath.TaskPane
    Microsoft.Office.InfoPath.HtmlTaskPane

네임스페이스:  Microsoft.Office.InfoPath
어셈블리:  Microsoft.Office.InfoPath(Microsoft.Office.InfoPath.dll)

구문

‘선언
Public MustInherit Class HtmlTaskPane _
    Inherits TaskPane
‘사용 방법
Dim instance As HtmlTaskPane
public abstract class HtmlTaskPane : TaskPane

주의

InfoPath 사용자 지정 작업창은 호환성이 InfoPath 편집기로 설정된 양식 서식 파일에서만 사용할 수 있습니다. 양식 서식 파일의 호환성을 설정하려면 파일 탭, 양식 옵션을 차례로 클릭한 다음 호환성 범주를 클릭합니다.

HtmlTaskPane 개체는 InfoPath 사용자 지정 작업창에서 사용할 수 있는 속성과 메서드를 제공하고 TaskPane 클래스의 속성을 상속합니다.

InfoPath 작업창에서 사용할 수 있는 속성은 실행 중인 작업창의 유형에 따라 결정됩니다. TaskPaneType 속성이 TaskPaneType.Html을 반환하면 작업창이 사용자 지정 작업창이며 HtmlTaskPane 클래스에서 제공하는 속성과 메서드를 사용할 수 있고, TaskPaneType 속성이 다른 값을 반환하면 작업창이 기본 제공 작업창이며 TaskPane 클래스에서 제공하는 속성을 사용할 수 있습니다.

TaskPaneType 속성은 TaskPaneType 열거형에 정의된 값을 반환합니다. 이러한 열거형 값을 TaskPaneCollection 클래스의 Item[TaskPaneType] 속성에 대한 인수로 사용하여 지정된 유형의 작업창에 대한 참조를 반환할 수도 있습니다.

사용자 지정 작업창을 사용하도록 설정하고 양식 서식 파일에 추가하려면 먼저 하나 이상의 HTML 파일을 만든 후 양식 서식 파일 디자인 모드에서 데이터 탭의 리소스 파일 명령을 사용하여 해당 HTML 파일을 리소스 파일로 추가해야 합니다. 그런 다음 파일 탭의 양식 옵션을 클릭하고 프로그래밍 범주를 클릭한 후 사용자 지정 작업창 사용 확인란을 선택하여 HTML 파일 중 하나를 양식 서식 파일의 기본 사용자 지정 작업창으로 구성해야 합니다.

참고 사항참고 사항

Loading 이벤트가 발생할 때는 보기가 아직 로드되지 않은 상태이고 작업창이 보기에 연결되어 있으므로 이 이벤트에 대한 이벤트 처리기에서 HtmlTaskPane 개체의 속성과 메서드를 호출할 수 없습니다.

다음 예제에서는 TaskPaneCollection 클래스의 Item 속성을 사용하여 사용자 지정 작업창을 나타내는 TaskPane 개체에 대한 참조를 가져온 후 HtmlTaskPane 형식으로 캐스팅합니다. 그런 다음 HtmlTaskPane 클래스의 Navigate 메서드를 호출하여 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")

다음 예제에서는 TaskPaneCollection 클래스의 Item 속성을 사용하여 사용자 지정 작업창을 나타내는 TaskPane 개체에 대한 참조를 가져옵니다. 그런 다음 HtmlTaskPane 클래스의 HtmlDocument 속성을 사용하여 사용자 지정 작업창의 HTML 코드에 정의된 스크립팅 함수를 호출합니다.

사용자 지정 작업창으로 지정된 HTML 파일의 개체 모델을 사용하여 작업하려면 Microsoft HTML 개체 라이브러리(MSHTML.dll)에서 제공하는 개체 모델을 사용합니다. 관리 코드에서 이 개체 모델을 사용하려면 Microsoft Visual Studio Tools for Applications를 실행한 후 참조 추가 대화 상자의 .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

스레드 보안

이 형식의 모든 공용 static (Visual Basic의Shared ) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수도 있습니다.

참고 항목

참조

HtmlTaskPane 멤버

Microsoft.Office.InfoPath 네임스페이스