※ ChatGPTを利用し、要約された質問です(原文:C# ユーザコントロール内のボタン押下を親で知る)
C#ユーザコントロール内のボタン押下の親への通知方法
このQ&Aのポイント
C#のユーザコントロール内のボタンをクリックした際に、親フォーム側でそのボタンの押下を検知する方法について質問です。
Form1.csにはInform_UserControlButton1Clickという関数があり、ユーザーコントロールのbutton1がクリックされた時にこの関数を実行したいです。
ただ、イベントの+=の部分でエラーが発生しており、正しい書き方がわかりません。どのようにすれば親フォームにボタンの押下を通知することができるでしょうか?
こんにちは。ユーザーコントロール内のボタンをクリックした時、そのユーザーコントロールをおいている親フォーム側で、それを知るにはどのようにすればよいでしょうか?
----------------------------------------------------------------------
[Form1.cs]
void Inform_UserControlButton1Click()
{
//親が持っている変数を使って処理を行いたい
}
void Form1_Load(....)
{
//ユーザコントロールを設置
UserControl1 ctrl = new UserControl1();
this.Controls.Add(ctrl);
//ユーザコントロール内のbutton1を見つける
List<Control> ctrl = new List<Control>(cps.Controls.Find("button1", false));
//Form1が持っている変数を使う為の関数を通るようにしたい
(Button)ctrl[0].Click += new System.EventHandler(Inform_UserControlButton1Click); //←エラー
}
----------------------------------------------------------------------
[UserControl.cs]
button1が配置されています。
----------------------------------------------------------------------
こんな感じにしてできないかなー?と思っていたのですが、//←エラーのところで、
イベント 'System.Windows.Forms.Control.Click' は += または -= の左側にのみ表示されます。
となってしまい上手くいきません。
どのようにすればよいでしょうか?
お礼
うは;申し訳ございません。おっしゃるとおりでした。 ()のつけ方を見間違っていました。大変失礼致しました。 なるほどです。理解できました。 上記修正を行い、思ったとおりの動作にすることができました。 すばやい対応をしていただき、大変助かりました。ありがとうございました!