Partager via


HtmlTaskPane, classe

Représente le volet Office personnalisé associé à la fenêtre active, dans laquelle un formulaire est en cours de modification.

Hiérarchie d'héritage

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

Espace de noms :  Microsoft.Office.InfoPath
Assembly :  Microsoft.Office.InfoPath (dans Microsoft.Office.InfoPath.dll)

Syntaxe

'Déclaration
Public MustInherit Class HtmlTaskPane _
    Inherits TaskPane
'Utilisation
Dim instance As HtmlTaskPane
public abstract class HtmlTaskPane : TaskPane

Remarques

Les volets Office personnalisés InfoPath sont utilisables uniquement dans un modèle de formulaire dont la compatibilité est définie sur Éditeur InfoPath. Pour définir la compatibilité d'un modèle de formulaire, cliquez sur l'onglet Fichier, puis sur Options du formulaire, puis cliquez sur la catégorie Compatibilité.

L'objet HtmlTaskPane fournit des propriétés et des méthodes pour travailler avec les volets Office personnalisés InfoPath ; il hérite en outre des propriétés de la classe TaskPane.

Les propriétés disponibles pour un volet Office InfoPath sont déterminées par le type de volet Office que vous utilisez. Si la propriété TaskPaneType renvoie TaskPaneType.Html, le volet est un volet Office personnalisé et les propriétés et méthodes disponibles sont fournies par la classe HtmlTaskPane. Si la propriété TaskPaneType renvoie une autre valeur, le volet est un volet Office prédéfini et les propriétés sont fournies par la classe TaskPane.

La propriété TaskPaneType renvoie des valeurs définies par l'énumération TaskPaneType. Ces valeurs énumérées sont également utilisées comme arguments de la propriété Item[TaskPaneType] de la classe TaskPaneCollection pour le renvoi d'une référence à un type spécifié de volet Office.

Pour pouvoir ajouter un volet Office personnalisé à un modèle de formulaire, vous devez d'abord créer un ou plusieurs fichiers HTML et les ajouter en tant que fichiers de ressources à l'aide de la commande Fichiers des ressources de l'onglet Données du modèle de formulaire, en mode Création. Vous devez ensuite configurer un des fichiers HTML comme volet Office personnalisé par défaut du modèle de formulaire en cliquant sur Options de formulaire dans l'onglet Fichier, puis en cliquant sur la catégorie Programmation, enfin en activant la case à cocher Activer le volet Office personnalisé.

Notes

Les propriétés et méthodes de l'objet HtmlTaskPane ne peuvent pas être appelées depuis un gestionnaire d'événements pour l'événement Loading car la vue n'est pas encore chargée lorsque cet événement se produit et des volets Office sont associés à la vue.

Exemples

Dans l'exemple suivant, la propriété Item de la classe TaskPaneCollection est utilisée pour obtenir une référence à l'objet TaskPane qui représente le volet Office personnalisé, qui prend le type HtmlTaskPane. Le code appelle ensuite la méthode Navigate de la classe HtmlTaskPane pour ouvrir un fichier HTML qui remplace le fichier HTML actuellement chargé en tant que volet Office personnalisé.

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

Dans l'exemple suivant, la propriété Item de la classe TaskPaneCollection est utilisée pour obtenir une référence à l'objet TaskPane qui représente le volet Office personnalisé. Le code appelle ensuite une fonction de script définie dans le code HTML du volet Office personnalisé, en utilisant la propriété HtmlDocument de la classe HtmlTaskPane.

Afin de pouvoir travailler avec le modèle objet du fichier HTML spécifié en tant que volet Office personnalisé, vous utilisez le modèle objet fourni par la bibliothèque d'objets Microsoft HTML (MSHTML.dll). Pour cela, à partir de code managé, ajoutez une référence à Microsoft.mshtml sous l'onglet .NET de la boîte de dialogue Ajouter une référence dans Microsoft Visual Studio Tools for Applications.

L'exemple suivant suppose que vous avez une directive using mshtml; ou Imports mshtml dans la section des déclarations du fichier de code de votre formulaire.

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

Sécurité des threads

Tout membre static (Shared dans Visual Basic) public de ce type garantit la sécurité des threads. Il n'est pas garanti que les membres d'instance soient sécurisés au niveau des threads.

Voir aussi

Référence

HtmlTaskPane, membres

Microsoft.Office.InfoPath, espace de noms