第二个事件处理程序没有触发按钮

本文关键字:按钮 事件处理 程序 第二个 | 更新日期: 2023-09-27 18:11:53

我有两个按钮。第一个按钮是从后面的代码中绘制的。单击第一个按钮时绘制第二个按钮。这是完美的。当我添加一个事件时,当第二个按钮被点击,这个事件将不会被触发。正如您在下面的代码中看到的,有一个btnTwo_click函数。如果我在这个函数上设置一个断点,程序甚至不会中断。是否有一种方法来触发这个事件从后面的代码(不使用java脚本)?

下面是代码,我实际使用这个系统中的一个表。但是这段简单的代码最后也有同样的问题。
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ImageButton btn = new ImageButton();
        btn.Command += new CommandEventHandler(btnOne_Click);
        form1.Controls.Add(btn);
    }
    void btnOne_Click(object sender, EventArgs e)
    {
        ImageButton btn = new ImageButton();
        btn.Command += new CommandEventHandler(btnTwo_Click);
        form1.Controls.Add(btn);
    }
    void btnTwo_Click(object sender, EventArgs e)
    {
        Label lblTest = new Label(); //BREAKPOINT
        form1.Controls.Add(lblTest);
    }
}

第二个事件处理程序没有触发按钮

你必须在Page生命周期的Page_Load或Page_Init方法上添加第二个按钮:

protected void Page_Load(object sender, EventArgs e)
{
    ImageButton btn = new ImageButton();
    btn.Command += btnOne_Click;
    form1.Controls.Add(btn);
    ImageButton btn2 = new ImageButton();
    btn2.Command += btnTwo_Click;
    btn2.Visible = false;
    form1.Controls.Add(btn2);
}
void btnOne_Click(object sender, EventArgs e)
{
    // Your second button 
    form1.Controls[2].Visible = true;
}
void btnTwo_Click(object sender, EventArgs e)
{
    ImageButton btn2 = (ImageButton)sender;
    // Do something
}

把这行移到Page_Load event,就可以了;)

btn.Command += new CommandEventHandler(btnTwo_Click);