0

ウィンドウフォームで、「FlowLayoutPanel」のボタンに共通のクリックイベントを実装できないか教えてください。前もって感謝します。

4

1 に答える 1

2

はい、イベントの共通ハンドラーを持つことができます。Buttonコントロールを作成しているとき:

for (Int32 i = 0; i < 3; i++)
{
    Button b = new Button();
    b.Name = "button" + i;
    // OR:  b.Tag = i;
    b.Click += button_Click;
    flowLayoutPanel1.Controls.Add(b);  //or whatever you add them to...
}

それぞれに同じハンドラを指定したので、次のようにしますButton

private void button_Click(Object sender, EventArgs e)
{
    Button b = (Button)sender;
    switch (b.Name)  // OR: switch (b.Tag) and react to integers instead of strings
    {
        case "button0":
            break;
        case "button1":
            break;
        case "button2":
            break;
    }
}

つまり、各ボタンを識別し、共通ハンドラが呼び出されたときにその識別子に反応する方法が必要なだけです。

于 2013-08-16T14:08:45.843 に答える