Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лек 010.doc
Скачиваний:
28
Добавлен:
07.02.2015
Размер:
111.62 Кб
Скачать

Свойства Application

Получив ссылку на объект Application, вы можете работать с его методами и свойствами. Этот объект предоставляет большой набор методов и свойств, позволяющих программно управлять Word. Большинство членов объекта Application действуют глобально, а не на отдельные документы. Обращение к одним свойствам обычно требует единственной строки кода, а доступ к другим - более сложного кода.

  1. ActiveWindow Возвращает объект Window, представляющий окно, которое находится в фокусе. Это свойство позволяет работать с любым окном, находящимся в фокусе. Ниже приведен пример кода, который создает новое окно на основе текущего документа, а затем вызывает метод Arrange объекта Window для размещения этих двух окон встык слева направо. Заметьте, что при вызове Arrange указывается перечислимое значение WdArrangeStyle.wdTiled.

    view source

    print?

    01.' Visual Basic

    02.Friend Sub CreateNewWindowAndTile()

    03. ' Создаем новое окно на основе активного документа

    04. Dim wnd As Word.Window = _

    05.   ThisApplication.ActiveWindow.NewWindow

    06. ' Размещаем два окна встык слева направо (tile)

    07. ThisApplication.Windows.Arrange( _

    08.   Word.WdArrangeStyle.wdTiled)

    09.End Sub

    10.   

    11.// C#

    12.public void CreateNewWindowAndTile()

    13.{

    14. // Создаем новое окно на основе активного документа

    15. Word.Window wnd =  ThisApplication.ActiveWindow.NewWindow();

    16.   

    17. // Размещаем два окна встык слева направо

    18. Object value = Word.WdArrangeStyle.wdTiled;

    19. ThisApplication.Windows.Arrange(ref value);

    20.}

    Совет Метод Arrange, как и многие другие методы в Word, требует от разработчиков на C# передачи одного или нескольких параметров с ключевым словом ref. Это означает, что ваш параметр должен быть записан в переменную до передачи в метод. В каждом случае вы должны создавать переменную типа Object, присваивать ей значение, которое следует передать методу, и передавать эту переменную с ключевым словом ref. Соответствующие примеры вы встретите во многих разделах этого документа.

  2. ActiveDocument Возвращает объект Document, представляющий активный документ или документ, который находится в фокусе.

  3. ActivePrinter Возвращает или устанавливает имя активного принтера.

  4. ActiveWindow Возвращает окно, которое находится в фокусе.

  5. AutoCorrect Возвращает текущие параметры функции AutoCorrect, ее элементы и исключения. Это свойство предназначено только для чтения.

  6. Caption Возвращает или устанавливает текст заголовка для указанного окна документа или приложения. Вот как с помощью свойства Caption вывести в строке заголовка окна документа или приложения текст "My New Caption":

    view source

    print?

    01.' Visual Basic

    02.Friend Sub SetApplicationCaption()

    03. ' Изменяем текст в строке заголовка

    04. ThisApplication.Caption = "My New Caption"

    05.End Sub

    06.   

    07.// C#

    08.public void SetApplicationCaption() 

    09.{

    10. // Изменяем текст в строке заголовка

    11. ThisApplication.Caption = "My New Caption";

    12.}

  7. CapsLock Определяет, включен ли режим CapsLock, возвращает булево значение. Следующая процедура показывает состояние CapsLock:

    view source

    print?

    01.' Visual Basic

    02.Friend Sub CapsLockOn()

    03. MessageBox.Show("CapsLock is " & _

    04.   ThisApplication.CapsLock.ToString())

    05.End Sub

    06.   

    07.// C#

    08.public void CapsLockOn() 

    09.{

    10. MessageBox.Show(ThisApplication.CapsLock.ToString());

    11.}

  8. DisplayAlerts Позволяет указывать, как обрабатывать оповещения (alerts) при выполнении кода. Для этого используется перечислимое WdAlertLevel, которое содержит три значения: wdAlertsAll [отображаются все сообщения и оповещения (по умолчанию)], wdAlertsMessageBox (показываются только окна сообщений) и wdAlertsNone (ничего не отображается). Если вы установите DisplayAlerts в wdAlertsNone, ваш код будет выполняться, не показывая пользователю никаких сообщений и оповещений. Закончив, вы должны вернуть DisplayAlerts обратно в wdAlertsAll (обычно это делается в блоке Finally):

    view source

    print?

    01.' Visual Basic

    02.Friend Sub DisplayAlerts()

    03. Try

    04.  ' Отключаем отображение сообщений и оповещений

    05.  ThisApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone

    06.  ' Ваш код выполняется без всяких оповещений

    07.  ' . . .здесь что-то делаем

    08. Finally

    09.  ' Вновь включаем показ оповещений

    10.  ThisApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsAll

    11. End Try

    12.End Sub

    13.   

    14.// C#

    15.public void DisplayAlerts() 

    16.{

    17. // Отключаем отображение сообщений и оповещений

    18. try 

    19. {

    20.  ThisApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;

    21.  // Ваш код выполняется без всяких оповещений

    22.  // . . . здесь что-то делаем

    23.   

    24. } 

    25. catch (Exception ex)

    26. {

    27.  // Что-то делаем с исключением

    28.   

    29. } 

    30. finally 

    31. {

    32.  // Вновь включаем показ оповещений

    33.  ThisApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsAll;

    34. }

    35.}

  9. DisplayStatusBar Свойство для записи и чтения, возвращает булево значение, указывающее, отображается ли строка состояния (status bar). Возвращает True, если показывается, и False, если нет. Следующая процедура включает/выключает строку состояния:

    view source

    print?

    01.' Visual Basic

    02.Friend Sub ToggleStatusBar()

    03. Dim bln As Boolean = (ThisApplication.DisplayStatusBar)

    04. ThisApplication.DisplayStatusBar = Not bln

    05.End Sub

    06.   

    07.// C#

    08.public void ToggleStatusBar() 

    09.{

    10. // Переключатель признака отображения строки состояния

    11. bool bln = ThisApplication.DisplayStatusBar;

    12. ThisApplication.DisplayStatusBar = !bln;

    13.}

  10. FileSearch Ищет файлы по абсолютному или относительному пути. Вы предоставляете критерии поиска, и FileSearch возвращает имена файлов, обнаруженных в наборе FoundFiles.

    view source

    print?

    01.' Visual Basic 

    02.Public Sub ListAllDocFilesOnC()

    03. Dim str As String

    04. Dim sw As New StringWriter

    05. Try

    06.  ThisApplication.System.Cursor = 

    07.   Word.WdCursorType.wdCursorWait

    08.  With ThisApplication.FileSearch

    09.   .FileName = "*.doc"

    10.   .LookIn = "C:\"

    11.   .SearchSubFolders = True

    12.   .Execute()

    13.   For Each str In .FoundFiles

    14. sw.WriteLine(str)

    15.   Next

    16.  End With

    17.  MessageBox.Show(sw.ToString())

    18. Finally

    19.  ThisApplication.System.Cursor = 

    20.   Word.WdCursorType.wdCursorNormal

    21. End Try

    22.End Sub

    23.   

    24.// C#

    25.public void ListAllDocFilesOnC() 

    26.{

    27. try

    28. {

    29.  ThisApplication.System.Cursor = Word.WdCursorType.wdCursorWait;

    30.  StringWriter  sw = new StringWriter();

    31.  Office.FileSearch fs = ThisApplication.FileSearch;

    32.  fs.FileName = "*.doc";

    33.  fs.LookIn = "C:\\";

    34.  fs.SearchSubFolders = true;

    35.  // Выбираем значения по умолчанию, необязательные в VBA:

    36.  fs.Execute(Office.MsoSortBy.msoSortByFileName, 

    37.   Office.MsoSortOrder.msoSortOrderAscending, true);

    38.  foreach (String str in fs.FoundFiles)

    39.  {

    40.   sw.WriteLine(str);

    41.  } 

    42.  MessageBox.Show(sw.ToString());

    43. }

    44. finally

    45. {

    46.  ThisApplication.System.Cursor =   

    47. Word.WdCursorType.wdCursorNormal;

    48.   }

    49.}

    Совет Обратите внимание в этом примере на то, что разработчикам на Visual Basic .NET не требуется передавать все параметры в метод Execute, так как они необязательные. Однако разработчикам на C# придется передавать абсолютно все параметры. В этом случае вы должны предоставлять значения, соответствующие значениям по умолчанию. В случае параметров, передаваемых по ссылке, можно передавать значение Type.Missing, указывающее, что Word должен обрабатывать эти параметры так, будто вы вообще не передавали в них значений. Но в случае параметров, передаваемых по значению, вы должны указывать реальные значения. Чтобы выяснить значения по умолчанию для таких параметров, читайте справочный файл по Word VBA.

  11. Path При использовании с объектом Application возвращает путь для текущего приложения:

    view source

    print?

    1.' Visual Basic

    2.MessageBox.Show(ThisApplication.Path)

    3.   

    4.// C#

    5.MessageBox.Show(ThisApplication.Path);

    Совет Чтобы получить путь для активного документа, используйте ThisDocument.Path.

  12. Options Возвращает объект Options, который представляет параметры Word, позволяя разом устанавливать самые разнообразные параметры в вашем приложении. Многие из этих параметров (но не все!) доступны через диалоговое окно Tools | Options. Следующий фрагмент кода устанавливает значения свойств BackgroundSave и Overtype, а также свойств, заставляющих при печати автоматически обновлять любые поля Word и выводить скрытый текст и коды полей.

    view source

    print?

    01.' Visual Basic

    02.' Устанавливаем различные параметры приложения

    03.With ThisApplication.Options

    04. .BackgroundSave = True

    05. .Overtype = True

    06. .UpdateFieldsAtPrint = True

    07. .PrintHiddenText = True

    08. .PrintFieldCodes = True

    09.End With

    10.   

    11.// C#

    12.// Устанавливаем различные параметры приложения

    13.Word.Options options = ThisApplication.Options;

    14.   

    15.options.BackgroundSave = true;

    16.options.Overtype = true;

    17.options.UpdateFieldsAtPrint = true;

    18.options.PrintHiddenText = true;

    19.options.PrintFieldCodes = true;

  13. Selection Объект только для чтения, представляющий выделенный фрагмент (или курсор ввода). Объект Selection будет детально описан позже.

  14. UserName Возвращает или устанавливает имя пользователя. Следующая процедура показывает имя текущего пользователя, устанавливает свойство UserName в "Dudley" и выводит новое значение UserName. Затем код восстанавливает исходный UserName.

    view source

    print?

    01.' Visual Basic

    02.Friend Sub ChangeUserName()

    03. Dim str As String = ThisApplication.UserName

    04. MessageBox.Show(str)

    05. ' Изменяем UserName

    06. ThisApplication.UserName = "Dudley"

    07. MessageBox.Show(ThisApplication.UserName)

    08. ' Восстанавливаем исходный UserName

    09. ThisApplication.UserName = str

    10.End Sub

    11.   

    12.// C#

    13.public void ChangeUserName() 

    14.{

    15. string  str = ThisApplication.UserName;

    16. MessageBox.Show(str);

    17.   

    18. // Изменяем UserName

    19. ThisApplication.UserName = "Dudley";

    20. MessageBox.Show(ThisApplication.UserName);

    21. // Восстанавливаем исходный UserName

    22. ThisApplication.UserName = str;

    23.}

  15. Visible Свойство для чтения и записи, отображает или скрывает окно самого Word. Пока свойство Visible равно False, все открытые окна Word скрыты; при этом кажется, будто Word и все документы закрыты. Поэтому, если вы устанавливаете свойство Visible в False, не забудьте присвоить ему True по завершении своей процедуры. В следующем примере кода это делается в блоке Finally обработчика исключений Try/Catch:

view source

print?

01.' Visual Basic

02.Try

03. ThisApplication.Visible = False

04. ' Здесь работаем в невидимом режиме

05.   

06.Catch ex As Exception

07. ' Здесь должен быть код вашего обработчика исключений

08.   

09.Finally

10. ThisApplication.Visible = True

11.End Try

12.   

13.// C#

14.try 

15.{

16. ThisApplication.Visible = false;

17. // Здесь работаем в невидимом режиме

18.} 

19.catch (Exception ex)

20.{

21. // Здесь должен быть код вашего обработчика исключений

22.} 

23.finally 

24.{

25. ThisApplication.Visible = true;

26.}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]