• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#で親にイベントを投げる方法)

C#で親にイベントを投げる方法

このQ&Aのポイント
  • C#の親にイベントを投げる方法について教えてください。
  • FormにあるPictureBoxのクリックイベントを親のFormに伝える方法を教えてください。
  • ポインタを使用して親にイベントを投げる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • lawson
  • ベストアンサー率44% (29/65)
回答No.1

>Formに伝えてあげたいのです この言葉がなにを意味しているのかはよくわかりませんが。 もし、Formオブジェクト上で定義したメソッドを 呼ぶようにしたいという話なら簡単です。 Formのクラスの中に、 PictureBox1という名前のPictureBox型のメンバー変数があったとします。 Formのクラスの中に、 PictureBox1_Click()というメソッドがあったとします。 初期処理のどこかで、 PictureBox1.OnClick += new ○○EventHandler(PictureBox1_Click); の記述があれば、 PictureBox1からClickイベントが発生した時、 つまり、画面上でクリックされたときに、 Formクラスにある PictureBox1_Click()メソッドが呼ばれます。 PictureBox1_Click()メソッドはFormクラスの メソッドなので、その定義の中でのthisは フォームオブジェクトそのものです。 そうやってフォームオブジェクトにアクセスできます。 なお、この PictureBox1.OnClick += new ○○EventHandler(PictureBox1_Click); のコードはVisual Studioのデザイナで PictureBox1のイベントハンドラを登録すると、 InitialComponent()などというメソッドに (名前ははっきり覚えてません)勝手に追加されます。 本当は別にどこでもよいです。 初期化処理のところで自分で手で追加しても同じことです。 ご質問ないようは、これでよろしかったでしょうか? ちなみに、 pictureBox.Parent.OnMouseDown() ですが、 pictureBox.Parentは コントロールや、コンテナ型のようなものが 返却されるかと、そのオブジェクトは OnMouseDownというメソッドは保有していないでしょう。 pictureBox.Parentが貴方が定義した Formクラスの派生クラスということは、 PictureBoxにはわからないことです。 ご質問内容がいまいちよくわからないので、 想像で勝手に回答しましたが、 勘違いしているようであれば、すいません。 以上です。

pokuda
質問者

お礼

回答ありがとうございました。 私が誤解してわけがわからない質問をしている部分がありましたが、欲しかった情報は+=でイベントが登録できることでした。 どうもありがとうございます。

関連するQ&A