Общие сведения о панели действий
Обновлен: Ноябрь 2007
Применение |
---|
Сведения в данном разделе относятся только к указанным проектам Visual Studio Tools for Office и версиям приложений Microsoft Office. Тип проекта
Версия Microsoft Office
Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов. |
Панель действий — это настраиваемая область задач "Действия с документами", прикрепляемая к отдельному документу Microsoft Office Word или книге Microsoft Office Excel. Она размещается внутри области задач Office вместе с другими областями задач, такими как Источник XML в Excel или Стили и форматирование в Word. Для разработки интерфейса панели действий можно использовать элементы управления Windows Forms или WPF.
Панель действий можно создать только в настройке уровня документа для Word или Excel. Создать панель действий в надстройке уровня приложения невозможно. Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.
Примечание. |
---|
Панель действий отличается от настраиваемых областей задач. Настраиваемая область задач связана с приложением, а не с отдельным документом. Настраиваемую панель задач можно добавить в надстройку уровня приложения для выпуска 2007 системы Microsoft Office. Дополнительные сведения см. в разделе Общие сведения о настраиваемых областях задач. |
Отображение панели действий
Панель действий представлена классом ActionsPane. При создании проекта уровня документа экземпляр данного класса доступен для кода при использовании в проекте поля ActionsPane класса ThisWorkbook (для Excel) или ThisDocument (для Word). Чтобы отобразить панель действий, следует добавить элемент управления Windows Forms в свойство Controls поля ActionsPane. В следующем примере кода на панель действия добавляется элемент управления с именем actions.
Me.ActionsPane.Controls.Add(actions)
this.ActionsPane.Controls.Add(actions);
Панель действий становится видимой во время выполнения, когда на нее явным образом добавляется элемент управления. После отображения панели действий можно динамически добавлять или удалять элементы управления в ответ на действия пользователя. Обычно для отображения панели действий следует добавить код в обработчик событий Startup класса ThisDocument или ThisWorkbook, так что панель действий становится видимой, когда пользователь открывает документ впервые. Однако возможно отображение панели только в ответ на действия пользователя в документе. Например, можно добавить код в событие Click элемента управления в документе.
Добавление нескольких элементов управления на панель действий
При добавлении нескольких элементов на панель действий в большинстве случаев необходимо объединить элементы управления в пользовательский элемент управления, а затем добавить пользовательский элемент управления в свойство Controls. Данная процедура включает следующие шаги:
Создание пользовательского интерфейса в панели действий посредством добавления в проект элемента Элемент управления панели действий или Пользовательский элемент управления. Оба эти элемента включают настраиваемый класс Windows Forms UserControl. Элементы Элемент управления панели действий и Пользовательский элемент управления эквивалентны; они отличаются только именами.
Добавление элемента управления Windows Forms в элемент UserControl с помощью конструктора или посредством написания кода.
Примечание. Также можно добавить на панель действий элементы управления WPF посредством добавления System.Windows.Controls.UserControl WPF в UserControl Windows Forms. Дополнительные сведения см. в разделе Использование элементов управления WPF в решениях Office.
Добавление экземпляра настраиваемого пользовательского элемента управления в элементы управления, которые содержатся в поле ActionsPane класса ThisWorkbook (для Excel) или ThisDocument (для Word) в проекте.
Пример, наглядно демонстрирующий данную процедуру, см. в разделах Практическое руководство. Добавление панели действий в документы Word и Практическое руководство. Добавление панели действий в книги Excel.
Скрытие панели действий
Хотя класс ActionsPane содержит метод Hide и свойство Visible, нельзя удалить панель действий с пользовательского интерфейса с помощью членов класса ActionsPane. Вызов метода Hide или присвоение свойству Visible значения false скрывает только элементы управления в панели действий, но не саму панель.
Скрыть панель задач в решении можно одним из следующих способов:
Для Word: следует присвоить свойству Visible объекта TaskPane, представляющего панель задач "Действия с документом", значение false. Следующий пример кода предполагается запускать из класса ThisDocument в проекте.
Me.Application.TaskPanes(Word.WdTaskPanes.wdTaskPaneDocumentActions).Visible = False
this.Application.TaskPanes[Word.WdTaskPanes.wdTaskPaneDocumentActions].Visible = false;
Для Excel: следует присвоить свойству DisplayDocumentActionTaskPane объекта Application значение false. Следующий пример кода предполагается запускать из класса ThisWorkbook в проекте.
Me.Application.DisplayDocumentActionTaskPane = False
this.Application.DisplayDocumentActionTaskPane = false;
Для Word или Excel: можно в качестве альтернативы присвоить свойству CommandBar.Visible командной строки, представляющей панель задач, значение false. Следующий пример кода предполагается запускать из класса ThisDocument или ThisWorkbook в проекте.
Me.Application.CommandBars("Task Pane").Visible = False
this.Application.CommandBars["Task Pane"].Visible = false;
Очистка панели действий при открытии документа
Если пользователь сохраняет документ, когда панель действий видима, то панель видна при каждом открытии документа независимо от того, содержит ли она какие-либо элементы управления. Если требуется управлять отображением панели действий, следует вызвать метод Clear поля ActionsPane в обработчике событий Startup класса ThisDocument или ThisWorkbook, чтобы убедиться, что панель действий невидима при открытии документа.
Определение закрытия панели действий
При закрытии панели событие не вызывается. Хотя класс ActionsPane содержит событие VisibleChanged, данное событие не вызывается при закрытии конечным пользователем панели действий. Вместо этого, событие вызывается, когда элементы управления в панели действий скрываются посредством вызова метода Hide или присвоения свойству Visible значения false.
Когда конечный пользователь закрывает панель действий, она снова может быть отображена с помощью одной из следующих процедур в пользовательском интерфейсе приложения.
Отображение панели действий с помощью пользовательского интерфейса Word 2007 или Excel 2007.
На ленте выберите вкладку Вид.
В группе Отобразить/скрыть щелкните выключатель Действия с документом.
Отображение панели действий с помощью пользовательского интерфейса Word 2003 или Excel 2003.
В меню Вид выберите пункт Панель задач.
Если отображается панель задач, отличная от панели задач Действия с документом, следует нажать кнопку Другие панели задач в верхней части панели задач и выбрать пункт Действия с документом.
Программирование событий панели действий
Можно добавить несколько элементов управления на панель действий и затем написать код, отвечающий на события документа, отображая и скрывая пользовательские элементы управления. Если сопоставить элементы схемы XML с документом, можно отобразить определенные пользовательские элементы управления в панели действий, если точка вставки находится внутри одного из XML-элементов. Дополнительные сведения см. в разделах Пошаговое руководство. Изменение панели действий в зависимости от контекста пользователя, Практическое руководство. Сопоставление схем и документов Word в Visual Studio и Практическое руководство. Сопоставление схем и листов внутри Visual Studio.
Также можно написать код, реагирующий на события любого объекта, включая элемент управления ведущего приложения, события приложение или документа. Дополнительные сведения см. в разделе Пошаговое руководство. Программирование реакции на события элементов управления NamedRange.
Привязка данных к элементам управления в панели действий
Элементы управления в панели действий имеют такие же возможности привязки данных, как и элементы управления в Windows Forms. Можно выполнять привязку элементов управления к наборам данных, типизированным наборам данных и XML. Дополнительные сведения см. в разделе Связывание данных и Windows Forms.
Можно выполнить привязку элементов управления в панели действий и элементов управления в документе к одному набору данных. Например, можно создать отношение "основной/подробности" между элементами управления в панели действий и элементами на листе. Дополнительные сведения см. в разделе Пошаговое руководство. Привязка данных к элементам управления в панели действий Excel.
Проверка данных в элементах управления в панели действий
При отображении окна сообщения в обработчике событий Validating элемента управления в панели действий событие может быть вызвано во второй раз при перемещении фокуса от элемента управления на окно сообщения. Чтобы это предотвратить следует использовать элемент управления ErrorProvider для отображения сообщений об ошибке.
Порядок добавления пользовательских элементов управления
При использовании нескольких пользовательских элементов управления можно написать код, чтобы правильно разместить пользовательские элементы управления в панели действий в зависимости от того, закреплена ли она вертикально или горизонтально. Можно задать порядок добавления пользовательских элементов управления на панель действий с помощью перечисления StackStyle свойства StackOrder. Дополнительные сведения см. в разделе Практическое руководство. Управление структурой элементов управления в панели действий.
Свойство StackOrder может принимать следующие перечисления.
Стили добавления элементов |
Определение |
---|---|
Добавление элементов с нижней части панели действий. |
|
Добавление элементов с левой части панели действий. |
|
Добавление элементов с правой части панели действий. |
|
Добавление элементов с верхней части панели действий. |
|
Порядок добавления элементов не определен; порядок задается разработчиком. |
В следующем код свойству StackOrder присваивается значение, согласно которому пользовательские элементы управления добавляются с верхней части панели действий.
Me.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop
this.ActionsPane.StackOrder = Microsoft.Office.Tools.StackStyle.FromTop;
Привязка элементов управления
Если пользователь изменяет размер панели действий во время выполнения, размер элементов управления также может изменяться вместе с панелью действий. Можно использовать свойство Anchor элемента управления Windows Forms, чтобы закрепить элементы управления в панели действий. Можно закрепить элементы управления Windows Forms на пользовательском элементе точно так же, как и другие элементы управления. Дополнительные сведения см. в разделе Практическое руководство. Привязка элементов управления в формах Windows Forms.
Изменение размера панели действий
Напрямую изменить размер ActionsPane нельзя, так как класс ActionsPane встроен в область задач. Однако можно программными средствами изменить ширину области задач, задав значение свойства Width класса CommandBar, представляющего область задач. Можно изменить высоту области задач, если она закреплена горизонтально или является перемещаемой.
Не рекомендуется изменять размер области задач программными средствами, так как пользователь должен иметь возможность выбирать размер области, который наилучшим образом соответствует его или ее потребностям. Но если изменение размера все-таки необходимо, можно использовать следующий код.
Me.CommandBars("Task Pane").Width = 200
this.CommandBars["Task Pane"].Width = 200;
Изменение расположения панели действий
Напрямую изменить расположение панели действий ActionsPane нельзя, так она встроена в область задач. Однако можно программными средствами переместить область задач, задав значение свойства Position класса CommandBar, представляющего область задач.
Не рекомендуется изменять расположение области задач программными средствами, так как пользователь должен иметь возможность выбирать расположение области задач на экране, которое наилучшим образом соответствует его или ее потребностям. Но если перемещение области задач все-таки необходимо, можно использовать следующий код.
Me.CommandBars("Task Pane").Position = _
Microsoft.Office.Core.MsoBarPosition.msoBarLeft
this.CommandBars["Task Pane"].Position =
Microsoft.Office.Core.MsoBarPosition.msoBarLeft;
Примечание. |
---|
Конечные пользователи в любое время могут вручную переместить область задач. Нет способа, который мог бы обеспечить то, что область задач будет закреплена в положении, заданном программными средствами. Однако можно проверить изменение ориентации и обеспечить правильное направление при добавлении элементов управления в панели действий. Дополнительные сведения см. в разделе Практическое руководство. Управление структурой элементов управления в панели действий. |
Присвоение значений свойствам Top и Left панели действий ActionsPane не изменяет ее положения, так как объект ActionsPane встроен в область задач.
Если область задач не закреплена, можно изменить свойства Top и Left класса CommandBar, представляющего область задач. В следующем примере кода панель действий перемещается в верхний левый угол документа.
If Me.CommandBars("Task Pane").Position = _
Microsoft.Office.Core.MsoBarPosition.msoBarFloating Then
Me.CommandBars("Task Pane").Top = 0
Me.CommandBars("Task Pane").Left = 0
End If
if (this.CommandBars["Task Pane"].Position ==
Microsoft.Office.Core.MsoBarPosition.msoBarLeft)
{
this.CommandBars["Task Pane"].Top = 0;
this.CommandBars["Task Pane"].Left = 0;
}
См. также
Задачи
Практическое руководство. Добавление панели действий в документы Word
Практическое руководство. Добавление панели действий в книги Excel
Пошаговое руководство. Вставка текста в документ из панели действий
Пошаговое руководство. Привязка данных к элементам управления в панели действий Word
Пошаговое руководство. Привязка данных к элементам управления в панели действий Excel
Пошаговое руководство. Изменение панели действий в зависимости от контекста пользователя
Практическое руководство. Управление структурой элементов управления в панели действий
Основные понятия
Использование элементов управления WPF в решениях Office
Настройка пользовательского интерфейса Office
Глобальный доступ к объектам в Visual Studio Tools for Office