C# WinForm按钮事件处理程序(动态)

C# WinForm按钮事件处理程序(动态),c#,winforms,button,eventhandler,C#,Winforms,Button,Eventhandler,我想区分每个事件处理程序 (我下面的代码中只有一个。我的意思是,动态处理程序将是最好的,但是,任何一种变通方法都可以。) 请帮帮我 谢谢 List<Button> VuttonList = new List<Button>(); private void Form1_Load(object sender, EventArgs e) { Button Vutton; int Kount = 10; fo

我想区分每个事件处理程序

(我下面的代码中只有一个。我的意思是,动态处理程序将是最好的,但是,任何一种变通方法都可以。)

请帮帮我

谢谢

    List<Button> VuttonList = new List<Button>();
    private void Form1_Load(object sender, EventArgs e)
    {
        Button Vutton;
        int Kount = 10;
        for (int i = 0; i < Kount ; i++)
        {
            Vutton = new Button();
            Vutton.Text = ( i + 1 ).ToString() ;
            Vutton.Location = new Point(10, 24 * ( i + 1 ) ); 
            Controls.Add( Vutton );
            Vutton.Click    += new EventHandler(Kommon);
            VuttonList.Add( Vutton );
        }
    }

    private void Kommon(object sender, EventArgs e)
    {
        MessageBox.Show(  sender.ToString() );
    }
List VuttonList=new List();
私有void Form1\u加载(对象发送方、事件参数e)
{
钮扣洞;
int Kount=10;
for(int i=0;i
一个事件处理程序就足够了,您可以将发送者强制转换为按钮,这样您就知道单击了哪个按钮。此外,您还可以在创建按钮时设置按钮的
Name
属性,或者指定按钮的
Tag
属性并在以后使用

for (int i = 0; i < Kount ; i++)
{
    Vutton = new Button();
    //...set properties
    //Also add Name:
    Vutton.Name = string.Format("Vutton{0}", i);
    //Also you can add Tag
    Vutton.Tag = i;
    Controls.Add( Vutton );
    Vutton.Click += new EventHandler(Kommon);
    //... other stuff
}

此外,要布局按钮,您可以使用
FlowLayoutPanel
TableLayoutPanel

一个事件处理程序就足够了,您可以将发送者强制转换为
按钮
,这样您就知道单击了哪个按钮。您还可以在创建按钮时设置按钮的
Name
属性,或者为按钮指定
Tag
属性,以便以后使用。您为按钮指定的唯一唯一标识是文本和位置属性,因此必须在列表中找到这些属性。您也可以使用Name属性,也可以使用字典而不是列表。@RezaAghaei谢谢您的评论。但是,我确实需要区分,这是我问题的重点。@LarsTech谢谢。嗯。。这应该是个好建议。我来试试看。我怎么能分辨出它的名字呢?这样地?“MessageBox.Show(发件人.姓名);”噢。好。很好,所以你才这么说。一个事件处理程序就足够了。现在我明白了。谢谢非常更多信息。这应该是另一个好消息。我甚至不知道它们的存在。再次感谢。
private void Kommon(object sender, EventArgs e)
{
    var button = sender as Button;
    //You can use button.Name or (int)button.Tag and ...
    MessageBox.Show(button.Name);
}