0

こんにちは、私は .Net C# で Windows フォーム アプリケーションに取り組んでいます。

これで、内部にボタンを持つユーザー コントロールができました。ただし、ユーザーコントロール自体ではなく、メインフォームにオンクリックハンドラーを記述する必要がありました。とにかく、ボタンのオンクリックハンドラーでユーザーコントロールオブジェクトを取得できるかどうかを知りたいです。同じフォームであと数回使用する必要があったためです。どのユーザーコントロールのボタンがクリックされたか知りたいです。

User Control
Button

ありがとうございました :)

4

3 に答える 3

0

UserControl と同じタイプのコントロールが見つかるまで、.Parent() チェーンをたどってください。次の例では、 UserControl は TypeSomeUserControlです。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        someUserControl1.button1.Click += new EventHandler(button1_Click);
        someUserControl2.button1.Click += new EventHandler(button1_Click);
        someUserControl3.button1.Click += new EventHandler(button1_Click);
    }

    void button1_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        Control uc = btn.Parent;
        while (uc != null && !(uc is SomeUserControl))
        {
            uc = uc.Parent;
        }

        uc.BackColor = Color.Red;
        MessageBox.Show(uc.Name);
    }

}
于 2013-05-19T15:38:34.073 に答える