簡體   English   中英

第二個事件處理程序不會從按鈕觸發

[英]Second eventhandler won't trigger from button

我有2個按鈕。 第一個按鈕從后面的代碼中提取。 單擊第一個按鈕時會繪制第二個按鈕。 這非常有效。 單擊第二個按鈕時添加事件時,不會觸發此事件。 正如您在下面的代碼中看到的那樣,有一個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_Load事件即可運行;)

btn.Command += new CommandEventHandler(btnTwo_Click);

您必須在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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM