當我以調試模式(F5)在VS2010
中構建Windows Forms
項目時,會出現一個標題爲「輸出窗口」的窗口。輸出窗口頂部有按鈕:「Find Message in Code
」,「Next Message
」和「Previous Message
」。但是,它們總是灰顯(禁用)。這些如何啓用?VS 2010 - 輸出窗口 - 如何啓用「在代碼中查找消息」按鈕?
我在期待這些按鈕的意圖是幫助我找到導致消息出現在輸出窗口中的代碼行。例如,如果我在客戶端代碼中寫入Trace.WriteLine("MyMessage");
,那麼在執行時會使MyMessage
出現在Output Window
;我想通過在輸出窗口中選擇一條消息並點擊「Find message in Code
」,它將導航到包含「MyMessage
」的客戶端代碼行。這將是一個光滑的功能,如果它啓用,我的假設是正確的。不幸的是,我無法啓用按鈕。
要回答這個問題,請解釋如何啓用和使用這些按鈕,以及是否應用最佳實踐(可選)。
以下是一些用作參考的源代碼。創建一個Windows Forms
項目並進行您在下面看到的更改,您可以重現我正在嘗試的內容。
// program.cs
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace MyNamespace
{
internal static class Program
{
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
try
{
throw new ApplicationException("MyMessage");
Application.Run(new FormMain());
}
catch (ApplicationException e)
{
Trace.WriteLine(e.ToString());
}
}
}
}
JasonD的建議
我更換
Trace.WriteLine(e.ToString());
與
Trace.WriteLine("Program.cs" + "(" + 23 + ")" + " Some info");
末JasonD解決方案 - 結果:啓用按鈕
解決了這個問題。多麼出乎意料的答案。在這個強類型的時代,答案取決於用魔術信息格式化字符串。我對此感到驚訝。
我明白了!謝謝JasonD,我會更新我的帖子以顯示我的解決方案 – sapbucket
JasonD,你能提供一個顯示所需字符串格式以啓用按鈕的網址嗎?我一直在谷歌搜索,似乎無法找到一個網址。 – sapbucket
沒有意識到 - 我只是複製VS自己的風格。 – JasonD