我正在开发一个C#Windows应用程序。它实现了选项卡控件。我的要求是跟踪事件,例如方法入口/出口,程序加载等,并将这些值传递给其中一个选项卡中的textBox(名为traceTextBox)。
如果有人能指导我从哪里开始,我会很高兴。
我想只追踪事件:按钮点击和方法输入和退出。
我想仅在我的应用程序中跟踪事件。
我只想跟踪而不是调试事件。
请注意:我不想登录文本文件或控制台。我希望在文本框中更新输出。
答案 0 :(得分:2)
System.Diagnostics.Trace.WriteLine()
是你的朋友。然后,您可以创建System.Diagnostics.TraceListener
的子类,并通过将其添加到System.Diagnostics.Trace.TraceListeners
进行注册,以便您的代码收到这些事件的通知。
请注意,只有在设置TRACE
条件编译标志时才会将跟踪事件编译到代码中(通常通过将其添加到每个相关项目设置中的“条件编译符号”框中)。
public sealed class MyTraceListener : TraceListener
{
public MyTraceListener() : base("MyTraceListener")
{
}
public override void Write(string message)
{
//TODO code here to add to your UI element
//NOTE make sure you hand off to the UI thread e.g.
// using InvokeRequired/Invoke
}
}
在您的应用程序启动中:
...
Trace.Listeners.Add(new MyTraceListener());
...
写作痕迹:
public void SomeMethod()
{
Trace.WriteLine("Entered SomeMethod()");
//...
Trace.WriteLine("Exited SomeMethod()");
}