測試Windows Forms UI時,我經常想在代碼運行時修改代碼。單擊「Break All」箭頭爲我執行此操作,但是Visual Studio始終顯示Program.cs窗口並將焦點設置在Application.Run()方法上,這種方法有點類似。然而,大多數情況下,我想要在我面前編輯代碼並且必須關閉Program.cs窗口的代碼是一件令人煩惱的事情,而我只是不想做的事情。如何在不改變窗口焦點的情況下全部中斷
是否有一種簡單的方法讓代碼在當前窗口中斷?
我發現的唯一方法是編寫一個可以暫停代碼的小宏,檢查是否創建了新窗口,如果是,則關閉它。這不是理想的,它是相當原始的,但它做到了這一點。然後,我剛剛添加了一個名爲「Break In Place」的工具欄命令,它位於我的調試工具欄中。如果任何人感興趣的宏代碼是:
Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Public Module Break
Sub BreakInPlace()
Dim activeWindow As EnvDTE.Window
activeWindow = DTE.ActiveWindow
DTE.Debugger.Break(True)
If Not activeWindow Is DTE.ActiveWindow Then
DTE.ActiveWindow.Close(vsSaveChanges.vsSaveChangesNo)
End If
End Sub
End Module
你不是第一個有這個問題的人。 20年前我們已經有過這個問題(當時的Vax/VMS工作站)。解決方案仍然相同:使用2臺機器:一臺運行應用程序,另一臺運行調試器。 – Patrick 2010-06-02 13:31:02
對不起,我只是想澄清一下。我只是在談論運行調試器(即F5 - 開始調試)。 – openshac 2010-09-10 09:02:45