Окно вывода отображает сообщения, генерируемые различными источниками в интегрированной среде. Прежде всего это — сообщения компилятора при сборке проекта. Для более глубокого изучения функциональности окна вывода обратитесь к главе 10.
Окно вывода управляется тремя объектами:
□ Outputwindow — корневой объект, представляющий окно вывода;
OutputWindowPanes — коллекция объектов OutputWindowPane;
□ OutputWindowPane представляет одну из текущих панелей внутри окна вывода.
Используя эти объекты, вы можете добавлять и удалять панели из окна вывода, выводить текст в любую из панелей и реагировать на события, происходящие в окне.
Следующий фрагмент кода на языке Visual Basic получает ссылку на окно вывода и пишет тестовую строку в панель Build:
Dim outWindow As Outputwindow =
DTE.Windows.Item(Constants.vsWindowKindOutput).Object
Dim pane As OutputWindowPane = outWindow.OutputWindowPanes.Item("Build") pane.OutputString("test")
Используя объект OutputWindowPane, вы можете также добавлять элементы одновременнс как в указанную панель вывода, так . и в окно Task List. Метод OutputWindowPane. OutputTaskltemString пишет текст в окно вывода и одновременнс добавляет этот текст как задачу в окно Task List:
Dim output As String = "Exception handler not found"
Dim task As String = "Add exception handler"
pane.OutputTaskltemString(output, vsTaskPriority.vsTaskPriorityMedium, _
"", vsTasklcon.vsTasklconNone, , 0, task, True)
Поскольку большая часть действий окна вывода выполняется в конкретной панели, то большинство полезных методов сосредоточено в объекте OutputWindowPane. Члены OutputwindowPane перечислены в табл. 11.9.
Таблица 11.9. Члены OutputwindowPane
В листинге 11.7 представлено, как осуществлять управление окном вывода посредством добавления новой панели в окно, записи текста в панель и очистки ее содержимого.
Imports EnvDTE
Imports EnvDTE80-
Imports Microsoft.VisualStudio.CommandBars
Imports System.Diagnostics
Imports System.Windows.Forms
Public Module MacroExamples
Public Sub WriteToOutputWindow()
' Получить ссылку на окно вывода Dim outWindow As OutputWindow = _
DTE.Windows.Item (Constants.vsWindowKindOutput).Object
Создать новую панель в окне вывода Dim pane As OutputWindowPane = _
outWindow,OutputWindowPanes.Add("New Pane")
pane.OutputString("Text in the 'New Pane'")
pane.Clear() End Sub End Module