我们遇到的问题是访问在另一个按钮的click事件中创建的按钮的click事件,即单击第一个按钮会生成一个新的面板和控件,现在我们希望此新创建的面板上的按钮能够执行动作。
控件已在类顶部声明,如下所示:
Panel createElementPage = null;
TextBox elementDescription = null;
TextBox elementName = null;
Button continueButton = null;
AuditSystem audit;
这是生成新面板的方法的摘录,定义continueButton的部分编写如下:
public void CE_Click(object sender, EventArgs e)
{
createElementPage.Controls.Add(elementDescription);
continueButton = new Button();
continueButton.Text = "Continue";
continueButton.Location = new Point(700, 500);
continueButton.Size = new Size(100, 50);
createElementPage.Controls.Add(continueButton);
}
我们想访问continueButton的click事件处理程序,但是我们编写的方法似乎不起作用。到目前为止,这是我们所拥有的:
private void continueButton_Click(object sender, EventArgs e)
{
Console.WriteLine(" something");
}
单击按钮不会产生任何结果,并且我们尝试了一些解决方案,例如实现单独的eventHandler方法。有人对此有解决办法吗?
答案 0 :(得分:4)
您必须实际订阅活动:
continueButton.Click += continueButton_Click;
需要告知事件应处理的内容。没有这些,他们将不会“听”任何东西。
友善的提示:像这样“按需”添加处理程序时要小心(即,在设计人员之外)。它实际上并没有在这里应用(每次都有一个新按钮),但是很容易意外地多次订阅控件的事件,因此处理程序将多次触发。很高兴知道:)