按钮单击事件不响应C#

时间:2019-01-15 16:06:51

标签: c# .net winforms onclick event-handling

我们遇到的问题是访问在另一个按钮的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方法。有人对此有解决办法吗?

1 个答案:

答案 0 :(得分:4)

您必须实际订阅活动:

continueButton.Click += continueButton_Click;

需要告知事件应处理的内容。没有这些,他们将不会“听”任何东西。

友善的提示:像这样“按需”添加处理程序时要小心(即,在设计人员之外)。它实际上并没有在这里应用(每次都有一个新按钮),但是很容易意外地多次订阅控件的事件,因此处理程序将多次触发。很高兴知道:)