Compartir a través de


HtmlTaskPane Clase

Definición

Representa el panel de tareas personalizado asociado a la ventana en la que se está editando el formulario.

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
Herencia
HtmlTaskPane

Ejemplos

En el ejemplo siguiente, la Item[] propiedad de la TaskPaneCollection clase se usa para obtener una referencia al TaskPane objeto que representa el panel de tareas personalizado, que se convierte en el HtmlTaskPane tipo . A continuación, el código llama al Navigate(String) método de la HtmlTaskPane clase para abrir un archivo HTML, que reemplaza al archivo HTML actual que se carga como panel de tareas personalizado.

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

En el ejemplo siguiente, se usa la propiedad Item de la TaskPaneCollection clase para obtener una referencia al TaskPane objeto que representa el panel de tareas personalizado. A continuación, el código llama a una función de scripting definida en el código HTML del panel de tareas personalizado mediante la HtmlDocument propiedad de la HtmlTaskPane clase .

Para poder trabajar con el modelo de objetos del archivo HTML especificado como panel de tareas personalizado, se usa el modelo de objetos proporcionado por la biblioteca de objetos HTML de Microsoft (MSHTML.dll). Para ello desde código administrado, agregue una referencia a Microsoft.mshtml en la pestaña .NET del cuadro de diálogo Agregar referencia en Visual Studio 2012.

En el ejemplo siguiente se supone que se dispone de una directiva using mshtml; o Imports mshtml en la sección de declaraciones del archivo de código del formulario.

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

Comentarios

Los paneles de tareas personalizados de InfoPath solo pueden usarse en una plantilla de formulario con la compatibilidad configurada en Editor de InfoPath. Para configurar la compatibilidad de una plantilla de formulario, haga clic en la pestaña Archivo, en Opciones de formulario y luego haga clic en la categoría Compatibilidad.

El HtmlTaskPane objeto proporciona propiedades y métodos para trabajar con paneles de tareas personalizados de InfoPath, y también hereda las propiedades de la TaskPane clase .

Las propiedades que están disponibles para un panel de tareas de InfoPath vienen determinadas por el tipo de panel de tareas con que se trabaje. Si la TaskPaneType propiedad devuelve TaskPaneType.Html, el panel de tareas es un panel de tareas personalizado y la clase proporciona HtmlTaskPane las propiedades y los métodos disponibles. Si la TaskPaneType propiedad devuelve cualquier otro valor, el panel de tareas es un panel de tareas integrado y la clase proporciona TaskPane las propiedades.

LaTaskPaneType propiedad devuelve valores definidos por la TaskPaneType enumeración . Estos valores enumerados también se usan como argumentos para la Item[TaskPaneType] propiedad de la TaskPaneCollection clase para devolver una referencia a un tipo especificado de panel de tareas.

Para habilitar y agregar un panel de tareas personalizado a una plantilla de formulario, primero debe crear uno o varios archivos HTML y agregarlos como archivos de recursos mediante el comando Archivos de recursos de la pestaña Datos en el modo de diseño de plantillas de formulario. A continuación, debe configurar unos de los archivos HTML como panel de tareas personalizado predeterminado de la plantilla de formulario haciendo clic en la pestaña Archivo, Opciones del formulario, haciendo clic en la categoría Programación y, a continuación, activando la casillaHabilitar el panel de tareas personalizado.

Nota: Las propiedades y los métodos del HtmlTaskPane objeto no se pueden llamar desde un controlador de eventos para el Loading evento porque la vista aún no se carga cuando se produce este evento y los paneles de tareas están asociados a la vista.

Constructores

HtmlTaskPane()

Representa el panel de tareas personalizado asociado a la ventana en la que se está editando el formulario.

Propiedades

HtmlDocument

Obtiene una referencia a la interfaz IHTMLDocument2 de MSHTML para trabajar con el modelo de objetos de documentos HTML de un panel de tareas personalizado.

HtmlWindow

Obtiene una referencia a la interfaz IHTMLWindow2 de MSHTML para trabajar con el documento HTML de un panel de tareas personalizado.

TaskPaneType

Obtiene un TaskPaneType valor que indica el tipo de panel de tareas representado por el TaskPane objeto .

(Heredado de TaskPane)
Visible

Obtiene o establece si el panel de tareas representado por el TaskPane objeto está visible en la interfaz de usuario de Microsoft InfoPath.

(Heredado de TaskPane)

Métodos

Navigate(String)

Carga el documento HTML especificado en el panel de tareas personalizado.

Se aplica a