Procédure d'accès aux données d'application
Le modèle objet InfoPath avec code managé fournit des objets et des collections qui peuvent être utilisés pour accéder aux informations sur l'application InfoPath, y compris celles associées au document XML sous-jacent d'un formulaire et au fichier de définition de formulaire (.xsf). Ces données sont accessibles à travers l'objet de niveau supérieur dans la hiérarchie des modèles d'objets InfoPath qui est instanciée à l'aide de la classe Application.
Dans un projet de modèle de formulaire InfoPath avec code managé, créé à l'aide de Microsoft Visual Studio Tools for Applications (VSTA) ou de Visual Studio avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007, vous pouvez utiliser le mot clé this (C#) ou Me (Visual Basic) pour accéder à une instance de la classe Application qui représente l'application InfoPath actuelle pouvant être utilisée pour accéder aux propriétés et aux méthodes de la classe Application.
Exemple
Affichage du nom de l'application, de la version et de l'identificateur de langue
Dans l'exemple suivant, les propriétés Name et Version de la classe Application permettent de retourner le nom et le numéro de version de l'instance InfoPath actuellement exécutée. La propriété LanguageSettings est ensuite utilisée pour retourner un objet LanguageSettings qui à son tour permet de retourner le code LCID (nombre de quatre chiffres) de la langue actuellement utilisée pour l'interface utilisateur InfoPath. Toutes ces informations sont affichées dans une zone de message.
Important : |
---|
Pour que la propriété LanguageSettings puisse fonctionner, vous devez établir une référence à la bibliothèque d'objets Microsoft Office 12.0 (dans l'onglet COM de la boîte de dialogue Ajouter une référence dans Microsoft Visual Studio Tools for Applications (VSTA) ou Visual Studio 2005). Cette opération établit une référence à l'espace de noms Microsoft.Office.Core qui contient la classe LanguageSettings. En outre, le formulaire doit être exécuté au niveau Autorisation totale. |
Cet exemple a besoin d'une directive using ou Imports pour l'espace de noms Microsoft.Office.Core dans la section des déclarations du module de code du formulaire.
string appName = this.Application.Name;
string appVersion = this.Application.Version;
LanguageSettings langSettings =
(LanguageSettings)this.Application.LanguageSettings;
int langID =
langSettings.get_LanguageID(MsoAppLanaguageID.msoLanguageIDUI);
MessageBox.Show(
"Name: " + appName + System.Environment.NewLine +
"Version: " + appVersion + System.Environment.NewLine +
"Language ID: " + langID);
Dim appName As String appName = Me.Application.Name
Dim appVersion As String = Me.Application.Version
Dim langSettings As LanguageSettings = _
DirectCast(Me.Application.LanguageSettings, LanguageSettings)
Dim langID As Integer = _
langSettings.LanguageID(MsoAppLanaguageID.msoLanguageIDUI)
MessageBox.Show( _
"Name: " + appName + System.Environment.NewLine + _
"Version: " + appVersion + System.Environment.NewLine + _
"Language ID: " + langID)