我正在使用C#Windows應用程序。它實現了選項卡控件。我的要求是跟蹤諸如方法進入/退出,程序加載等事件,並將這些值傳送到其中一個選項卡中的文本框(名爲traceTextBox)。跟蹤應用程序
如果有人能指導我從哪裏開始,我會很高興。
我想只跟蹤事件:按鈕點擊和方法進入和退出。
我想僅在我的應用程序中跟蹤事件。
我只想跟蹤而不是調試事件。
請注意:我不想登錄到文本文件或控制檯。我想要在文本框中更新輸出。
我正在使用C#Windows應用程序。它實現了選項卡控件。我的要求是跟蹤諸如方法進入/退出,程序加載等事件,並將這些值傳送到其中一個選項卡中的文本框(名爲traceTextBox)。跟蹤應用程序
如果有人能指導我從哪裏開始,我會很高興。
我想只跟蹤事件:按鈕點擊和方法進入和退出。
我想僅在我的應用程序中跟蹤事件。
我只想跟蹤而不是調試事件。
請注意:我不想登錄到文本文件或控制檯。我想要在文本框中更新輸出。
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()");
}
你能請指導我一個完整的代碼? – user187023 2010-08-09 09:41:35
使用代碼示例編輯答案。 – 2010-08-09 10:13:50
@ user187023:你要跟蹤的所有事件,而不必手動訂閱/寫事件處理程序你自己,還是你可以爲你想要追蹤的任何事物編寫處理程序? – 2010-08-09 10:05:48