- - PR -
異なる複数のコントロールから同一の動作を行う方法について
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-10-28 19:51
イベントの概念を崩すから私的には NG。
「コントロールの配列」のような概念がない限り、 イベント ハンドラを統合したりはしません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
|
投稿日時: 2005-10-28 19:53
ジブさんも"メニューとコマンドボタンなら"と限定していらっしゃるように、別(※)のイベントを受けるイベントハンドラを同じメソッドにするのは不自然です。
例えば、"Z"キーを押した時も同じ処理をしたいとなったら破綻しますよね。 現在たまたまEventHandler型のイベントの時にしかその処理を行おうとしていないだけですから。 MenuItem2.Clickのイベントハンドラは"MenuItem2のClick時の処理を行う"という使命を持っています。"ファイルの書き込み"ではなく、"MenuItem2のClick時の処理を行う"です。 「MenuItem2.ClickのイベントハンドラはMenuItem2のClick時の処理を行う」 「MenuItem2のClick時にはファイルの書き込みを行う」 だからMenuItem2.Clickのイベントハンドラでファイルの書き込みの処理を行う(メソッドを呼ぶとか)のです。 これを短絡してしまうと、後で"Z"キーを押した時も同じ処理をしたくなった場合にMenuItem2_Click()を呼ぶ、なんて作りになるわけですね。 ※「別の」というのは、仕事の内容ではなく概念的にということです。 例えば画面上の全てのボタンのClickイベントを一つのメソッドに結び付けて、その中でClickイベントを起こした原因のボタンによって処理を分けると言うのは(良い作りかどうかは別として)ありだと思います。 そのメソッドは"ボタンのクリック時の処理"という使命が与えられているんでしょう。 |
|
投稿日時: 2005-10-28 20:15
Borland にある、ActionList だな(-o-アクションを登録して、そのアクションを起動するきっかけを結びつける。 _________________ |
|
投稿日時: 2005-10-28 22:05
皆さん。たくさんの返答ありがとうございます。
いろいろなご意見とても参考になりました。 全体的な感想としては、異なる複数のコントロールから同一の動作を 行う場合、それぞれのイベント毎にコーディングしたほうが良い。 イベントハンドラを統合したりすると、イベントの概念を崩し、 かえってメンテしにくいプログラムになってしまう可能性がある 為、しないほうが良い。 と感じました。 まだまだ、皆さんいろいろなご意見があるとは思いますが、この辺で このスレッドが解決とさせて頂きたいと思います。 また、わからない事がありましたら質問致しますが、 その時は、よろしくお願いします。 ありがとうございました。 |
