Практическое руководство. Получение доступа к данным приложения
Объектная модель управляемого кода InfoPath предоставляет объекты и коллекции, которые можно использовать для получения доступа к сведениям о приложении InfoPath, включая информацию, связанную с базовым XML-документом формы и файлом определения формы (XSF-файлом). Доступ к этим данным предоставляется через объект верхнего уровня в иерархии объектной модели InfoPath, экземпляр которой создается путем использования класса Application.
В проекте шаблона формы InfoPath с управляемым кодом, созданном с помощью Набор средств Microsoft Visual Studio для приложений (VSTA) или Visual Studio с Набор средств Microsoft Visual Studio 2005 для Microsoft Office System 2007, можно использовать ключевое слово this (C#) или Me (Visual Basic) для доступа к экземпляру класса Application, который представляет текущее приложение InfoPath и которым затем можно воспользоваться для доступа к свойствам и методам класса Application.
Пример
Отображение имени, версии и идентификатора языка приложения
В следующем примере свойства Name и Version класса Application используются для возвращения имени и номера версии запущенного экземпляра InfoPath. Свойство LanguageSettings затем используется для возвращения объекта LanguageSettings, который, в свою очередь, используется для возвращения идентификатора LCID (четырехзначного числа) для языка, применяемого в настоящий момент для интерфейса пользователя InfoPath. И наконец, вся эта информация отображается в окне сообщения.
Внимание! |
---|
Чтобы свойство LanguageSettings работало, необходимо указать ссылку на библиотеку объектов Microsoft Office 12.0 (на вкладке COM диалогового окна Добавить ссылку в Набор средств Microsoft Visual Studio для приложений (VSTA) или Visual Studio 2005). При этом будет указана ссылка на пространство имен Microsoft.Office.Core, содержащее класс LanguageSettings. Кроме того, форму необходимо запускать с полным доверием. |
В этом примере требуется директива using или Imports для пространства имен Microsoft.Office.Core в разделе объявлений модуля кода формы.
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)