Панели команд

Оценить
(0 голоса)

Панель команд — это панель меню или панель инструментов; с точки зрения объектной мо­дели они представлены объектами CommandBar. Поскольку панели меню и панели инстру­ментов находятся в окне, то вы ссылаетесь на конкретные объекты CommandBar через объ­ект Window (при помощи свойства Window.CommandBars). В бвою очередь, каждыР CommandBar размещает внутри себя такие элементы управления, как кнопки и выпадающие списки. На рис. 11.5 показано окно Solution Explorer с выделенной командной панелью.

Обратите внимание, что на панели команд находится шесть кнопок.

Примечание

В отличие от коллекции windows, которая содержит только экземпляры всех откры тых окон, коллекция CommandBars содержит экземпляры всех зарегистрированны) панелей команд, независимо от того, показана ли в данный момент эта панель в окне.

Код на языке Visual Basic в листинге 11.9 запрашивает объект CommandBar для окнг Solution Explorer и выводит те объекты CommandBar, которые находит.

Панели команд

Imports EnvDTE Imports EnvDTE80

Imports Microsoft.VisualStudio.CommandBars Imports System.Diagnostics Imports System.Windows.Forms

Public Module MacroExamples Public Sub QueryCommandBar()

Dim windows As Windows2 = DTE.Windows

' Получить ссылку на Solution Explorer Dim solExplorer As Window2 = _

windows.Item(Constants.vsWindowKindSolutionExplorer)

' Получить объект панели команд для Solution Explorer .

Dim cmdBar As CommandBar = CType(solExplorer.CommandBars(1), CommandBar)

' Начинаем создавать выходную строку

Dim output As String = "Command bar contains: " + vbCrLf

*    Получить ссылку на элементы управления внутри панели управления Dim controls As CommandBarControls = cmdBar.Controls

' Целочисленный счетчик Dim i As Integer = 1

' Перебрать элементы управления в панели команд For Each control As CommandBarControl In controls If control.Enabled Then

output = output + i.ToStringO + " " + control.Type.ToString() + _

": " + control.Caption + vbCrLf

i = i + 1 End If Next

MessageBox.Show(output, "Solution Explorer Command Bar", _

MessageBoxButtons.OK)

End Sub End Module

Сопоставьте результаты рис. 11.6 и 11.4: в окне инструментов видны четыре кнопки, а код обнаружил в коллекции CommandBarControls шесть элементов (они были возвращены при

помощи свойства CommandBar. Controls). Удалив следующую проверку свойства Enabled, мы получим гораздо больше элементов управления в окне сообщения:

If control.Enabled Then

Обратите внимание, что в листинге 11.9 вы должны явным образом приводить тип возвра­щенного из свойства Window.CommandBars объекта. Интересно, что это не строго типизи­рованное свойство, и оно возвращает Object вместо реального экземпляра CommandBars.

Рис. 11.6. Элементы управления, обнаруженные в панели команд

Совет

Используйте свойство CommandBar.Туре для определения, является ли панель 1 команд панелью инструментов или панелью меню. Значение MsoBarType.msoBarTypeNormal подразумевает, что панель команд— это панель инструментов, в то время как значение MsoBarType.msoBarTypeMenuBar— что это меню.

Свойства и методы объекта CommandBar описаны в табл. 11.10.

Примечание

Предыдущие версии Visual Studio фактически опирались на определение объекта CommandBar (пространство имен Microsoft.Office.Core) в сборке Microsoft Office. Visual Studio 2005 и более поздние версии имеют собственную реализацию объекта CommandBar, который определен в пространстве имен Microsoft. visualStudio. CommandBars (хотя вы по-прежнему можете найти не­которые типы, которые ведут свое обозначение от сборки MS Office — такие как различные перечисления Msoxxx).

Таблица 11.10. Члены CommandBarОписание: image275Описание: image276Описание: image277

Документы
Текстовые документы
Редактирование текстовых документов
Добавление текста
Редактирование текста

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.