2019-09-17プログラムを作ってデバッグをするときに「トレース」はとてもよく使います。Studioなどでは「出力」ウィンドウなどに表示などをしてくれるのでとても助かります。デバッグの時などでも、ときどきこういった情報を扱いやすくなるようにする機能があるので試してみます。いうオブジェクトが用意されています。TraceListernerとは、トレース出力を受け取って、それを他の場所に出力するオブジェクトです。アプリケーションからのトレース情報を出力ストアに送り出すためのパイプのようなもので、トレース情報をトレースリスナに書き込むと、そのトレースリスナがトレース情報をターゲットメディアに出力してくれます。派生クラスを作成します。派生クラスは、単純に受け取ったトレース情報をテキストファイルに出力するだけのものにします。このクラスは「クラスライブラリ(DLL)」として作成します。System.Diagnostics;"を用意します。System.Collections.Specialized;"も必要です。Flush()こちらは、今回の派生クラス固有の実装です。message)・・・トレース情報を保持するためのメソッドこれらの実装を行ってクラスは、下記のようになります。指定したメッセージをリスナーに書き込みます。指定したメッセージをリスナーに書き込みます。指定したメッセージとカテゴリ名をリスナーに書き込みます。オブジェクトのToStringの値とカテゴリ名をリスナーに書き込みます。}TraceListernerの派生クラスを使うテストプログラムTraceListernerの派生クラスを呼び出すためにSystem.DiagnosticsのTraceやDebugで出力を行います。サンプルプログラムのコードは下記のようになります。}今回のポイント今回のサンプルプログラムで重要になるのは、このソースコードより"App.config"というプログラムのconfigファイルのほうです。通常のWindowsフォームアプリケーションのApp.configは、このようなものです。</trace></system.diagnostics>を追加して、下記のようなXMLファイルとなるようにします。/></appSettings><appSettings>部分は、トレース情報を出力するファイル名を指定するもので、今回の派生クラス固有の実装のための設定です。/>のvalueに指定している"MyTrace.txt"が、出力されるファイル名です。</trace></system.diagnostics><system.diagnostics>部分は、今回の派生クラスを呼び出して動作するようにするための設定です。type="TraceListenerDLL.Listener,TraceListenerDLL"/>この行にあるtypeの値部分は、今回作成したクラスライブラリのクラス名と名前空間です。このテストプログラムをビルドして実行するときには、TraceListernerの派生クラスのあるクラスライブラリをテストプログラムの実行ファイルがあるフォルダに置いてから実行します。Studioの[出力]ウィンドウに、今までと同じような実装されたDebugの出力が下記のように出ます。frmMain_LoadbtnExit_ClickfrmMain_FormClosedまた、テストプログラムの実行ファイルがあるフォルダに"MyTrace.txt"というファイルが出力されています。この"MyTrace.txt"の中身は下記のようになりました。frmMain_LoadbtnExit_ClickfrmMain_FormClosed今回作成したDLLは、このDLLのためのプログラムを用意しなくても他のプログラムの実行ファイルと同じフォルダにDLLを置いてApp.config(実行環境の場合"<プログラム名>.exe.config")に上記の設定を追加するだけでも使用できます。フォームにステータスバーを表示する(StatusStrip)(2/2)前回、フォームにステータスバーを表示する基本を紹介しました。今回は、そのステータスバー(StatusStrip)に文字列以外のものを表示する方法を紹介します。バイト列(byte[])を変換する現在はHTTPなどでテキストベースでの通信も容易に行えるようになってきていますが、通信に使用する電文やバイナリデータも多く使われます。TreeViewコントロールの使い方(1/3)今回は、TreeViewコントロール(System.Windows.Forms名前空間)の基本的な使い方を紹介します。使用せずにスレッド上から画面情報へアクセスする方法ボタンを押したときに時間が掛かる処理を実行させたい場合がある。ツールバーを作る(2/3)ツールバーの土台になるToolStripの上に乗せることができるコントロールを紹介していきます。下表のようなコントロールに対するクラスがあります。