Vorgehensweise: Zugreifen auf Anwendungsdaten
Das InfoPath-Objektmodell mit verwaltetem Code stellt Objekte und Auflistungen bereit, mit deren Hilfe der Zugriff auf Informationen zur InfoPath-Anwendung ermöglicht wird, einschließlich Informationen zu dem einem Formular zugrunde liegenden XML-Dokument und der Formulardefinitionsdatei (XSF). Der Zugriff auf diese Daten erfolgt über das Objekt der obersten Ebene in der Hierarchie des InfoPath-Objektmodells, das mithilfe der Application-Klasse instanziiert wird.
In einem InfoPath-Formularvorlagenprojekt mit verwaltetem Code, das mithilfe von Microsoft Visual Studio Tools für Anwendungen (VSTA) oder Visual Studio mit Microsoft Visual Studio 2005 Tools für 2007 Microsoft Office System erstellt wurde, können Sie das Schlüsselwort this (C#) oder Me (Visual Basic) verwenden, um auf eine Instanz der Application-Klasse zuzugreifen, die die aktuelle InfoPath-Anwendung darstellt, welche dann verwendet werden kann, um auf die Eigenschaften und Methoden der Application-Klasse zuzugreifen.
Beispiel
Anzeigen des Anwendungsnamens, der Version und der Sprachen-ID
Im folgenden Beispiel werden die Eigenschaften Name und Version der Application-Klasse verwendet, um den Namen und die Versionsnummer der ausgeführten InfoPath-Instanz zurückzugeben. Die LanguageSettings-Eigenschaft wird dann verwendet, um ein LanguageSettings-Objekt zurückzugeben, das wiederum zum Zurückgeben der LCID (einer vierstellige Zahl) für die Sprache verwendet wird, die zurzeit für die InfoPath-Benutzeroberfläche verwendet wird. Schließlich werden alle diese Informationen in einem Meldungsfeld angezeigt.
Wichtig
Damit die LanguageSettings-Eigenschaft funktioniert, müssen Sie einen Verweis auf die Microsoft Office 12.0-Objektbibliothek einrichten (über die Registerkarte COM im Dialogfeld Verweis hinzufügen in Microsoft Visual Studio Tools für Anwendungen (VSTA) oder Visual Studio 2005). Dadurch wird ein Verweis auf den Microsoft.Office.Core-Namespace eingerichtet, der die LanguageSettings-Klasse enthält. Darüber hinaus muss das Formular als "Voll vertrauenswürdig" ausgeführt werden.
Dieses Beispiel erfordert eine using- oder Imports-Direktive für den Microsoft.Office.Core-Namespace im Deklarationsabschnitt des Formularcodemoduls.
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)