- - PR -
NotifyIconに対するEventHandlerの登録でエラー
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-04-03 17:13
C#にてWindowsアプリを作成しています。
このアプリは最小化した際にタスクトレイにアイコンを格納し、タスクトレイのアイコンをダブルクリックすると元の大きさで表示する仕様です。 最小化時にタスクトレイへのアイコン格納はできました。 しかし、タスクトレイのアイコンをダブルクリックした際に、元の大きさで復元(表示)する事が出来ません。 実装方法は以下の通りです。 1)InitializeComponent()メソッドの中で下記一行を追記しました。 this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick); 2)メソッド追加で以下のメソッドを同じクラス内に追加しました。 private void notifyIcon1_DoubleClick(object sender, System.Windows.Forms.MouseEventArgs e) 3)コンパイル(ビルド)すると以下のエラーが発生します。 メソッド 'WindowsApplication1.main_Form.notifyIcon1_DoubleClick(object, System.Windows.Forms.MouseEventArgs)' はデリゲート型 'void System.EventHandler(object, System.EventArgs)' と一致しません。 MSDNのサンプルをそのまま記述しているつもりなのですが、何故かエラーになります。 何が原因かお分かりの方、お教え下さい。 | ||||||||
|
投稿日時: 2009-04-03 18:32
public event MouseEventHandler MouseClick
マウスクリックイベント notifyicon.mouseclick と ダブルクリックイベント notifyicon.doubleclick のイベントの型をよく見てみてください。 mouseclickはMouseEventHandlerですが doubleclickはEventHandlerです。 でMouseEventHandlerは
EventHandlerは
デリゲートの引数に MouseEventArgs と EventArgs の違いがありますね。 イベントで使用するメソッドの引数は、型が同じか、キャスト可能な型でなければいけません。 EventArgs を MouseEventArgs には変換できないため、エラーが発生しているのだと思います。 [ メッセージ編集済み 編集者: セラフ 編集日時 2009-04-03 18:33 ] | ||||||||
|
投稿日時: 2009-04-06 10:44
>マウスクリックイベント
>notifyicon.mouseclick >と >ダブルクリックイベント >notifyicon.doubleclick >のイベントの型をよく見てみてください。 見落としてました。 指摘の通り、MouseEventHandlerとEventHandlerの違いがありました。 以下のように修正し、無事、やりたい事が実現できました。 1)InitializeComponent()メソッドの中で下記一行を追記しました。 this.notifyIcon1.DoubleClick += new System.EventHandler(this.notifyIcon1_DoubleClick); 2)メソッド追加で以下のメソッドを同じクラス内に追加しました。 private void notifyIcon1_DoubleClick(object sender, EventArgs e) ※第二引数をEventHandlerに変更しました。 単純なミスでした。アドバイスありがとうございました。 |
1