当我在调试模式 (F5) 下构建Windows Forms
项目时VS2010
,会出现一个标题为输出窗口的窗口。输出窗口顶部有几个按钮:“ Find Message in Code
”、“ Next Message
”和“ Previous Message
”。但是,它们始终显示为灰色(禁用)。这些是如何启用的?
我期待这些按钮的目的是帮助我找到导致消息出现在输出窗口中的代码行。例如,如果我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 解决方案 - 结果:启用按钮
那解决了它。多么出乎意料的答案。在这个强类型化的时代,答案取决于使用魔法消息格式化字符串。我对此感到惊讶。