- PR -

イベントの追加に関して

1
投稿者投稿内容
じゃんき
会議室デビュー日: 2007/03/28
投稿数: 10
投稿日時: 2008-02-26 16:39
お世話になります。

VS2005, C#で開発しています。

Formのロード処理で
this.Button1.Click += new System.EventHandler(this.Button1_Click);
とイベントを追加しています。

あるタイミングでdesignerにも
this.Button1.Click += new System.EventHandler(this.Button1_Click);
が追記され、以後、クリック処理が2回走るようになりました。

対応としてはdesignerの方を消してしまったのですが、
また、同じ現象が発生するのではないかと思っており、
この修正方法でよいのでしょうか?

以上、よろしくお願いします。



くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-02-26 18:15
>また、同じ現象が発生するのではないかと思っており
デザイナ上で、ボタンのClickイベントをご自身で選択してませんか?

>この修正方法でよいのでしょうか?
良いか悪いかは、仕様次第ですよね。
初期状態ではボタンのハンドラは無しで
条件により様々なハンドラが追加されるのであれば、正しいでしょうし
終始ハンドラがButton1_Clickであるならば、間違いです。(デザイナに任せるべきです)
じゃんき
会議室デビュー日: 2007/03/28
投稿数: 10
投稿日時: 2008-02-26 18:48
くまっちさんありがとうございます

>デザイナ上で、ボタンのClickイベントをご自身で選択してませんか?
確認したのですがデザイナ上は未設定でした
何かの表示にダブルクリックした際に書き込まれたのかな?と
思っております

>良いか悪いかは、仕様次第ですよね。
>初期状態ではボタンのハンドラは無しで
>条件により様々なハンドラが追加されるのであれば、正しいでしょうし
>終始ハンドラがButton1_Clickであるならば、間違いです。(デザイナに任せるべきです)
今回の場合ですと、終始Button1_Clickのみの呼び出しになりますので
デザイナで呼び出すほうが、安全ですね。
(また、今回のようなことがおこりかねない・・・)

わかりました。
デザイナで任せることにします。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)