- - PR -
VB.NETのボタンイベントに対するログ出力方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-20 18:01
ボタンイベントに対してログを出力したいと思っています。
現状、ログ出力クラスは作成できてるのですが、実装方法について悩んでいます。 単純にボタン押下時に上記クラスのインスタンスを生成して、 メソッドを呼べば問題は無いのですが。 全てのボタン押下時イベントに上記メソッドを呼ぶ処理を書くのがどうも気に入っていません。 コーディングする人がログ出力を気にしないでもいいような方法ってありませんか? (ボタンを配置するだけで、ログ出力機能も備わっているようなもの) 初歩的なことのように思うので、参考になるURLなど教えていただければうれしいです。 よろしくお願い致します。 | ||||
|
投稿日時: 2004-06-20 23:00
ボタンを継承して、「イベントが発生した時にログを書き出すボタン」クラスを作成してはどうでしょう。
| ||||
|
投稿日時: 2004-06-21 10:26
返答ありがとうございます。
Windows コントロールライブラリを作り、継承元をUserControlから、 実際に継承したいButtonに書き換えて、 あとは OnClick メソッドをオーバーライドしてやるだけでOKですよね^^; アドバイスありがとうございました。 | ||||
|
投稿日時: 2004-06-21 10:46
OnClick()はClickイベントが起きたときに呼ばれるメソッドというわけではないので、OnClick()をオーバーライドしてもしょうがないんじゃないでしょうか。
Buttonを継承したクラスの中で、Clickイベントが起きた時にログを書き出すという処理を行う必要があります。 | ||||
|
投稿日時: 2004-06-21 11:57
度々の指摘ありがとうございます。
以下のように、Clickイベントをshadow指定で作成したのですが、 どうもうまいこと機能してくれません;; 色々なサイトを参考にしたのですが、shadow指定がよくないのでしょうか? Imports System.Windows.Forms Public Class ButtonEx Inherits System.Windows.Forms.Button Private myReporter As Reporter 'ログ出力クラス 'クリックイベント Private Shadows Sub [Click]() myReporter = New ToEventLog() 'ログ出力 End Sub End Class | ||||
|
投稿日時: 2004-06-21 13:23
.NETのデリゲートという型、そしてイベントというクラスのメンバの機能について調べてみると良いかと思います。
(VB.NETを使っていると理解しづらいかもしれませんが)
こんな感じで。 | ||||
|
投稿日時: 2004-06-21 16:12
なんとか解決することができました^^;
一郎さんのアドバイス大変助かりました。 以下参考にしたURLです。 http://www.gotdotnet.com/japan/quickstart/CompactFramework/doc/btndclick.aspx | ||||
|
投稿日時: 2004-06-21 18:32
clickイベントを発生させる為にコールするメソッドなので、今回の要件では、オーバーライドしたメソッド内でMyBase.OnClickメソッドを必ず呼び出すようにすれば、Okです。つまり、clickイベントが発生する要件が整うと、必ずOnClickメソッドが呼び出されます。Onイベント名メソッドは、そのように実装されなければならず、イベントの発生は、Onイベント名メソッドを呼び出すことで実装しなければなりません。 ご参考:イベントの発生 って、解決しているようですが。 |