Типы оконных инструментов
Кроме объектной абстракции window, каждое стандартное окно инструментов в интегрированной среде (командное окно, окно вывода, окно Toolbox и окно Task List) представлено также отдельным типом, который предоставляет уникальные методы и свойства этого окна инструментов. В табл. 11.7 перечислены стандартные окна инструментов и их базовый тип в объектной модели расширяемости.
Для того чтобы сослаться на один из этих объектов, вы начинаете с его представления в виде Window, а затем приводите тип значения Window.Object к соответствующему типу. Например, следующий фрагмент на языке Visual Basic начинается со ссылки Window на окно Task List, а затем использует этот объект Window для получения ссылки на…
Для программного взаимодействия с панелью инструментов используются четыре объекта:
□ ToolBox — объект, представляющий саму панель инструментов Toolbox;
□ ToolBoxTabs — коллекция, представляющая вкладки панели;
□ ToolBox Items — коллекция, представляющая элементы внутри вкладки панели;
□ ToolBoxitem — отдельный элемент, отображаемый внутри вкладки панели.
На рис. 11.3 показана иерархия объектов панели Toolbox.
Эти объекты используются в основном для добавления, удаления или изменения элементов, имеющихся в панели Toolbox. Например, при помощи коллекции ToolBoxTabs вы можете легко добавить в панель свою вкладку:
Dim tBox As ToolBox Dim myTab As ToolBoxTab
tBox = DTE.Windows.Item(Constants.vsWindowKindToolbox).Object myTab = tBox.ToolBoxTabs.Add("My TBox Tab")
Вы можете также добавлять…
Командное окно — это окно инструментов для выполнения команд (или их алиасов) интегрированной среды. Команды интегрированной среды — это по существу способ дать указание интегрированной среде выполнить некое действие. Некоторые команды соответствуют непосредственно пунктам меню (таким как File | Open), в то время как другие эквивалентов в меню не имеют.
Объект Commandwindow позволяет вам программным путем перенаправить команды в командное окно и выполнить их. Вы можете также вывести в окно текстовую строку (для информационных целей) и очистить его текущее содержимое:
' Получить ссылку на командное окно Dim cmdWindow As Commandwindow = _
DTE.Windows.Item(Constants.vsWindowKindCommandWindow).Obj ect
' Вывести в командном окне некий…
Окно вывода отображает сообщения, генерируемые различными источниками в интегрированной среде. Прежде всего это — сообщения компилятора при сборке проекта. Для более глубокого изучения функциональности окна вывода обратитесь к главе 10.
Окно вывода управляется тремя объектами:
□ Outputwindow — корневой объект, представляющий окно вывода;
OutputWindowPanes — коллекция объектов OutputWindowPane;
□ OutputWindowPane представляет одну из текущих панелей внутри окна вывода.
Используя эти объекты, вы можете добавлять и удалять панели из окна вывода, выводить текст в любую из панелей и реагировать на события, происходящие в окне.
Следующий фрагмент кода на языке Visual Basic получает ссылку на окно вывода и пишет тестовую строку в…
Окна инструментов могут быть расположены внутри интегрированной среды различными способами: вы можете оставить окна инструментов плавающими в пределах общего контейнера интегрированной среды, пристыковать окно инструмента к одной из сторон интегрированной среды, объединять окна и прикреплять их и т. д. (введение по компоновке окон см. в разд. "Управление множеством окон в интегрированной среде разработки " главы 2).
Связанные окна— это два или более окон инструментов, которые сгруппированы вместе. На рис. 11.4 показан пример: панель Toolbox и окно Solution Explorer объединены в общей рамке. Каждое окно (которое является частью рамки) можно посмотреть при помощи нажатия на его вкладку.
Рис. 11.4. Объединенные окна…
Панель команд — это панель меню или панель инструментов; с точки зрения объектной модели они представлены объектами CommandBar. Поскольку панели меню и панели инструментов находятся в окне, то вы ссылаетесь на конкретные объекты CommandBar через объект Window (при помощи свойства Window.CommandBars). В бвою очередь, каждыР CommandBar размещает внутри себя такие элементы управления, как кнопки и выпадающие списки. На рис. 11.5 показано окно Solution Explorer с выделенной командной панелью.
Обратите внимание, что на панели команд находится шесть кнопок.
Примечание
В отличие от коллекции windows, которая содержит только экземпляры всех откры тых окон, коллекция CommandBars содержит экземпляры всех зарегистрированны) панелей команд, независимо…
Объекты документов применяются для представления в интегрированной среде открытых документов. Для сравнения этой абстракции с той, которую предоставляет объект Window: объект Window используется для представления физических аспектов пользовательского интерфейса окна документа, в то время как объект Document служит для представления физического документа, который отображается внутри окна документа.
Документ может быть визуальным конструктором (таким как визуальный конструктор Windows Forms), либо он может быть текстовым документом (таким как ознакомительный файл readme или файл с кодом на языке С#, открытый в редакторе).
Точно так, как вы получаете список всех открытых окон при помощи коллекции DTE. Windows, точно так же вы можете использовать и…
Как мы уже упоминали, документы могут иметь как текстовое, так и нетекстовое содержимое. Для документов с текстовым содержимым существует отдельный объект — TextDocument. Объект Text Document предоставляет доступ к функциям управления, специфичным для текстового содержимого.
Если у вас есть объект Document, и если этот объект Document относится к текстовым документам, тогда в свойстве Document. Object можно сослаться на экземпляр TextDocument следующим образом:
Dim doc As TextDocument doc = myDocument.Object
В табл. 11.12 содержатся члены TextDocument.
Совет
Текстовый документ представляется как экземпляром Document, так и экземпляром TextDocument. Нетекстовые документы (такие как форма Windows, открытая в окне визуального конструктора Windows Forms) имеют…
С точки зрения Visual Studio текст в текстовом документе имеет два различных "представления": виртуальное и физическое. Физическое представление — это обычней файл кода, находящийся на диске. Виртуальное представление — это то, что Visual Studio представляет на экране: это интерпретированное представление текста кодового файла, которое учитывает различные функциональные возможности (такие как структурирование кода, виртуальные интервалы и перенос слов).
На рис. 11.7 показана эта связь. При отображении текстового документа Visual Studio читает исходный файл в текстовый буфер, а затем текстовый редактор отображает для вас его представление (в зависимости от опций, которые вы настроили в редакторе).
Рис. 11.7. Представление текстовых документов в интегрированной…
Объект EditPoint является ключевым при добавлении текста, и вы создаете его либо при помощи объекта TextDocument, либо при помощи объекта TextPoint.
Экземпляр TextPoint может создать экземпляр EditPoint в том же самом месте (при помощи вызова TextPoint. Createlnstance). При помощи типа TextDocument вы можете вызвать метод CreateEditPoint и передать в него TextPoint.
Поскольку объекты TextPoint применяются для определения конкретных точек в документе, то объект TextPoint используется как входной параметр для CreateEditPoint. По существу, объект TextPoint сообщает методу, где именно нужно создать точку редактирования. Если вы не предоставляете объект TextPoint, то точка редактирования будет создана в начале документа.
Следующий фрагмент кода показывает…