2010-02-25 3 views
7

У меня есть вопрос об отладке в Visual Studio. Можно ли очистить окно Immediate в Visual Studio автоматически перед каждым запуском отлаживаемого приложения? Команда >cls и Context Menu->Clear All полезны, но они не являются автоматическими и требуют личного внимания при каждом запуске приложения. Опять же, методы System.Diagnostics.Debug.Print()|Write*() могут записывать сообщения только в окно «Немедленное», поэтому >cls не применяется. Есть ли решение проблемы? (В настоящее время я использую VS 2008)Автоматическая очистка окна Immediate Window в Visual Studio

Благодарим вас за предложения.

ответ

9

Вот макрос, который делает это. В окне класса Macro IDE перейдите к MyMacros - EnvironmentEvents. Откройте (дважды щелкните) EnvironmentEvents. Вставьте следующий код в модуль:

Private Sub BuildEvents_OnBuildDone(_ 
    ByVal Scope As EnvDTE.vsBuildScope, _ 
    ByVal Action As EnvDTE.vsBuildAction) _ 
    Handles BuildEvents.OnBuildDone 

    Try 
     Dim activeWin As Window = DTE.ActiveWindow 
     Dim immedWin As Window = DTE.Windows.Item("{ECB7191A-597B-41F5-9843-03A4CF275DDE}") 
     immedWin.Activate() 
     DTE.ExecuteCommand("Edit.ClearAll") 
     activeWin.Activate() 
    Catch ex As Exception 
    End Try 
End Sub 

Здесь вы можете увидеть, как это должно выглядеть следующим образом: macro in EnvironmentEvents http://i46.tinypic.com/2vxg6so.png

Смотрите мой быстрый учебник how to create and execute VS macro.

+0

Благодарим за сообщение, Питер. Я пробовал свой код в VS-макросах, но у меня есть ошибка. «Предложение Handles требует переменную WithEvents, определенную в содержащем типе или одном из его базовых типов». _ В строке * Ручки BuildEvents.OnBuildDone * с объектом BuildEvents , К сожалению, я не очень хорошо знаком с VB.NET. –

+1

Вы разместили его в модуле EnvironmentEvents? Должна быть область автогенерации с определением переменной корректора: Public WithEvents BuildEvents As EnvDTE.BuildEvents Вставьте макрос после этой области. Я обновлю ответ mu на скриншот –

+0

Я пропустил его в конце рабочего дня.))) Спасибо, Питер! :) –

Смежные вопросы