2010-08-09 208 views
1

我正在使用C#Windows應用程序。它實現了選項卡控件。我的要求是跟蹤諸如方法進入/退出,程序加載等事件,並將這些值傳送到其中一個選項卡中的文本框(名爲traceTextBox)。跟蹤應用程序

如果有人能指導我從哪裏開始,我會很高興。

我想只跟蹤事件:按鈕點擊和方法進入和退出。

我想僅在我的應用程序中跟蹤事件。

我只想跟蹤而不是調試事件。

請注意:我不想登錄到文本文件或控制檯。我想要在文本框中更新輸出。

+0

@ user187023:你要跟蹤的所有事件,而不必手動訂閱/寫事件處理程序你自己,還是你可以爲你想要追蹤的任何事物編寫處理程序? – 2010-08-09 10:05:48

回答

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()"); 
} 
+0

你能請指導我一個完整的代碼? – user187023 2010-08-09 09:41:35

+0

使用代碼示例編輯答案。 – 2010-08-09 10:13:50