Freigeben über


HtmlTaskPane-Klasse

Stellt den benutzerdefinierten Aufgabenbereich dar, der dem aktuellen Fenster zugeordnet ist, in dem ein Formular bearbeitet wird.

Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Syntax

'Declaration
Public MustInherit Class HtmlTaskPane
    Inherits TaskPane
'Usage
Dim instance As HtmlTaskPane
public abstract class HtmlTaskPane : TaskPane

Hinweise

Das HTMLTaskPane-Objekt stellt Eigenschaften und Methoden zum Arbeiten mit benutzerdefinierten InfoPath-Aufgabenbereichen bereit, und es erbt auch die Eigenschaften der TaskPane-Klasse.

Die Eigenschaften, die für einen InfoPath-Aufgabenbereich verfügbar sind, werden durch den Typ des Aufgabenbereichs bestimmt, mit dem Sie arbeiten. Wenn die TaskPaneType-Eigenschaft TaskPaneType.Html zurückgibt, handelt es sich um einen benutzerdefinierten Aufgabenbereich, und die verfügbaren Eigenschaften und Methoden werden von der HtmlTaskPane-Klasse bereitgestellt. Wenn die TaskPaneType-Eigenschaft einen anderen Wert zurückgibt, handelt es sich um einen integrierten Aufgabenbereich, und die verfügbaren Eigenschaften werden von der TaskPane-Klasse bereitgestellt.

Die TaskPaneType-Eigenschaft gibt von der TaskPaneType-Enumeration definierte Werte zurück. Diese Enumerationswerte werden auch als Argumente für die Item(TaskPaneType)-Eigenschaft der TaskPaneCollection-Klasse verwendet, um einen Verweis auf einen angegebenen Aufgabenbereichstyp zurückzugeben.

Wenn Sie einen benutzerdefinierten Aufgabenbereich aktivieren und einer Formularvorlage hinzufügen möchten, müssen Sie zunächst eine oder mehrere HTML-Dateien erstellen und mithilfe des Befehls Ressourcendateien im Menü Extras im Entwurfsmodus für Formularvorlagen als Ressourcendateien hinzufügen. Dann müssen Sie eine der HTML-Dateien als benutzerdefinierten Standardaufgabenbereich der Formularvorlage konfigurieren, indem Sie im Menü Extras auf Formularoptionen und dann auf die Kategorie Programmierung klicken und anschließend das Kontrollkästchen Benutzerdefinierten Aufgabenbereich aktivieren aktivieren.

Hinweis

Die Eigenschaften und Methoden des HtmlTaskPane-Objekts können von einem Ereignishandler für das Loading-Ereignis nicht aufgerufen werden, da die Ansicht beim Eintreten dieses Ereignisses noch nicht geladen wurde und Aufgabenbereiche der Ansicht zugeordnet sind.

Beispiel

Im folgenden Beispiel wird die Item-Eigenschaft der TaskPaneCollection-Klasse verwendet, um einen Verweis auf das TaskPane-Objekt abzurufen, das den benutzerdefinierten Aufgabenbereich darstellt und in den HtmlTaskPane-Typ umgewandelt wird. Der Code ruft dann die Navigate-Methode der HtmlTaskPane-Klasse auf, um eine HTML-Datei zu öffnen, die die aktuelle HTML-Datei ersetzt, die als benutzerdefinierter Aufgabenbereich geladen wird.

// 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")

Im folgenden Beispiel wird die Item-Eigenschaft der TaskPaneCollection-Klasse verwendet, um einen Verweis auf das TaskPane-Objekt abzurufen, das den benutzerdefinierten Aufgabenbereich darstellt. Anschließend ruft der Code eine Skriptfunktion, die im HTML-Code des benutzerdefinierten Aufgabenbereichs definiert ist, mithilfe der HtmlDocument-Eigenschaft der HtmlTaskPane-Klasse auf.

Zum Arbeiten mit dem Objektmodell der HTML-Datei, die als benutzerdefinierter Aufgabenbereich angegeben ist, verwenden Sie das von der Microsoft HTML-Objektbibliothek (MSHTML.dll) bereitgestellte Objektmodell. Bei verwaltetem Code fügen Sie dazu einen Verweis auf Microsoft.mshtml auf der Registerkarte .NET des Dialogfeldes Verweis hinzufügen in Microsoft Visual Studio Tools für Anwendungen (VSTA) oder Visual Studio hinzu.

Im folgenden Beispiel wird davon ausgegangen, dass sich die using mshtml; oder Imports mshtml-Direktive im Deklarationenabschnitt der Formularcodedatei befindet.

// 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

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

HtmlTaskPane-Member
Microsoft.Office.InfoPath-Namespace