C#创建动态按钮和onClick动态EventHandlers

我的程序动态创建按钮。

private void CreateButton(string buttonName) { Color[] c = { Color.Red, Color.Teal, Color.Blue, Color.WhiteSmoke }; transbutton = new Button(); transbutton.BackColor = c[2]; transbutton.Text = buttonName; transbutton.Name = buttonName + "Button"; transbutton.Width = 150; transbutton.Height = 150; transbutton.Font = new Font("Segoe UI", 13); transbutton.ForeColor = Color.White; transbutton.Click += new EventHandler(transbutton_Click); } private void transbutton_Click(object sender, EventArgs e) { tbList.Text = transbutton.Text; } 

在此处输入图像描述

我想要做的是当用户点击按钮时,它将按钮的名称添加到多行TextBox中,如上图所示。 我创建了一个EventHandler但是无法弄清楚如何使它与动态按钮一起工作。

您可以参考在那里单击的按钮作为sender参数。 所以…

 private void transbutton_Click(object sender, EventArgs e) { tbList.Text += "\r\n" + ((Button)sender).Text; } 

使用像这样的按钮数组。将创建3个动态按钮bcoz h变量的值为3

 public void button_Click(object sender, EventArgs e) { if( sender == buttonArray[0] ) { MessageBox.Show("hello"); } } private void button1_Click(object sender, EventArgs e) { int h =3; Button[] buttonArray = new Button[8]; for (int i = 0; i <= h-1; i++) { buttonArray[i] = new Button(); buttonArray[i].Size = new Size(20, 43); buttonArray[i].Name= ""+i+""; buttonArray[i].Click += button_Click;//function buttonArray[i].Location = new Point(40, 20 + (i * 20)); panel1.Controls.Add(buttonArray[i]); } }