こんにちは。
解釈が間違ってたらすみません。
後半の文章から「ユーザーコントロール内のボタンをサブスクライブできない」と勝手に読み替えました。
間違っていた場合は回答も直しますので言ってください。
WinFormsの場合はWPFのようにイベントが上位に昇っていかないので、
ユーザコントロール上に「ボタンが押されましたよイベント」を公開する必要があります。
そしてユーザーコントロール内部のボタンクリックイベントで上記イベントを発生させます。
その際のsenderにボタンコントロールを設定すればフォーム側でも押下されたボタンとして判定できると思います。
C#
1public partial class Form1 : Form
2{
3 public Form1()
4 {
5 InitializeComponent();
6 }
7
8 private void userControl11_InnerButtonClicked(object sender, EventArgs e)
9 {
10 var btn = sender as Button;
11 if (btn != null)
12 MessageBox.Show(btn.Name);
13 }
14}
15
16public partial class UserControl1 : UserControl
17{
18 public UserControl1()
19 {
20 InitializeComponent();
21 }
22
23 public event EventHandler InnerButtonClicked;
24
25 private void button1_Click(object sender, EventArgs e)
26 {
27 OnInnerButtonClicked(sender, e);
28 }
29
30 private void button2_Click(object sender, EventArgs e)
31 {
32 OnInnerButtonClicked(sender, e);
33 }
34
35 private void OnInnerButtonClicked(object sender, EventArgs e)
36 {
37 var h = this.InnerButtonClicked;
38 if (h != null)
39 {
40 h(sender, e);
41 }
42 }
43}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。