C# 将“单击”功能添加到生成的按钮窗体

C# 将“单击”功能添加到生成的按钮窗体,c#,winforms,.net-core-3.1,tablelayoutpanel,C#,Winforms,.net Core 3.1,Tablelayoutpanel,我有一个关于向生成的按钮添加函数的问题。我想通过按下按钮可以转到另一个.cs 确切事件: PartnerInfo partnerInfo = new PartnerInfo(); partnerInfo.Show(); 正在每行的“TableLayoutPanel”中生成该按钮。我现在为表使用的代码: //get a reference to the previous existent RowStyle temp = MyPartnersPanel.RowStyles[MyPartnersP

我有一个关于向生成的按钮添加函数的问题。我想通过按下按钮可以转到另一个.cs

确切事件:

PartnerInfo partnerInfo = new PartnerInfo();
partnerInfo.Show();
正在每行的“TableLayoutPanel”中生成该按钮。我现在为表使用的代码:

//get a reference to the previous existent 
RowStyle temp = MyPartnersPanel.RowStyles[MyPartnersPanel.RowCount - 1];
//increase panel rows count by one
MyPartnersPanel.RowCount++;

//add a new RowStyle as a copy of the previous one
MyPartnersPanel.RowStyles.Add(new RowStyle(temp.SizeType, temp.Height));
//add your controls
MyPartnersPanel.Controls.Add(
  new TextBox() {
    Text = PartnerName, ReadOnly=true }, 0, MyPartnersPanel.RowCount - 1);
    MyPartnersPanel.Controls.Add(new TextBox() { Text = PartnerLevel, ReadOnly = true }, 1, MyPartnersPanel.RowCount - 1);
    MyPartnersPanel.Controls.Add(new TextBox() { Text = PartnerGoal, ReadOnly = true }, 2, MyPartnersPanel.RowCount - 1);
    MyPartnersPanel.Controls.Add(new TextBox() { Text = WorkoutPerWeek, ReadOnly = true }, 3, MyPartnersPanel.RowCount - 1);
    MyPartnersPanel.Controls.Add(new Button() { Text = "+", BackColor = Color.Black, ForeColor = Color.White, Height = 29, }, 4, MyPartnersPanel.RowCount - 1);
)};
非常感谢您的帮助。
如果有必要的话,我正在使用.NET Core 3.1将创建按钮的语句一分为二,这样您就可以访问按钮:

MyPartnersPanel.Controls.Add(new Button() { Text = ...
应该是:

Button btn  new Button() {Text = ...};
MyPartnersPanel.Controls.Add(btn);

// attach an event handler:
btn.Clicked += this.ButtonClickedEventHandler;

private void ButtonClickedEventHandler(object sender, ...)
{
    ...
}

将创建按钮的语句一分为二,以便访问按钮:

MyPartnersPanel.Controls.Add(new Button() { Text = ...
应该是:

Button btn  new Button() {Text = ...};
MyPartnersPanel.Controls.Add(btn);

// attach an event handler:
btn.Clicked += this.ButtonClickedEventHandler;

private void ButtonClickedEventHandler(object sender, ...)
{
    ...
}

您的意思是为按钮的单击事件指定一个方法
btn.Click+=ClickEventMethod
您需要两个步骤:按钮newButton=newButton(){Text=“+”,BackColor=Color.Black,ForeColor=Color.White,Height=29,},4,MyPartnersPanel.RowCount-1)MyPartnersPanel.Controls.Add(newButton);newButton.Click+=newsystem.EventHandler(this.button1\u Click);添加了您的代码并创建了事件按钮1\u单击,我发现“4,MyPartnersPanel.RowCount-1”上出现错误。我注意到您没有关闭1。因此,尝试使用和不使用时,似乎会出现两种不同的错误。。没有它是期待“三次”吗?对于“;”只有2个“;”+标识符+“}”预期@jdwenggy,您需要一个类似私有void button1的单击方法。\u click(object sender,EventArgs e){}下面是更正的代码:Button newButton=new Button(){Text=“+”,BackColor=Color.Black,ForeColor=Color.White,Height=29};添加(newButton,4,MyPartnersPanel.RowCount-1);啊,是的,它正在工作!谢谢你的帮助!您的意思是为按钮的单击事件指定一个方法
btn.Click+=ClickEventMethod
您需要两个步骤:按钮newButton=newButton(){Text=“+”,BackColor=Color.Black,ForeColor=Color.White,Height=29,},4,MyPartnersPanel.RowCount-1)MyPartnersPanel.Controls.Add(newButton);newButton.Click+=newsystem.EventHandler(this.button1\u Click);添加了您的代码并创建了事件按钮1\u单击,我发现“4,MyPartnersPanel.RowCount-1”上出现错误。我注意到您没有关闭1。因此,尝试使用和不使用时,似乎会出现两种不同的错误。。没有它是期待“三次”吗?对于“;”只有2个“;”+标识符+“}”预期@jdwenggy,您需要一个类似私有void button1的单击方法。\u click(object sender,EventArgs e){}下面是更正的代码:Button newButton=new Button(){Text=“+”,BackColor=Color.Black,ForeColor=Color.White,Height=29};添加(newButton,4,MyPartnersPanel.RowCount-1);啊,是的,它正在工作!谢谢你的帮助!