0

いくつかのランタイム変数の値に基づいていくつかのボタンを作成しています (いくつあるかもわかりません)。

ボタンの私のコードは次のとおりです。

Button cancel = new Button();
            cancel.Text = "Cancel";
            cancel.ID = "cancelEnrollmentForStudent" + zapsanePredmetyList.ElementAt(i).ID.ToString() + "-" + i ;
            cancel.Click += new EventHandler(cancelEnrollment);
            string toCancel = selectedSubject.SelectedValue + ";" + studentToEnroll.SelectedValue;
            cancel.CommandArgument = toCancel;

クリックメソッドのコードは

protected void cancelEnrollment(object sender, EventArgs e)
    {
        //do something when button clicked. 
        Button sourceButton = (Button)sender;
        string[] data = sourceButton.CommandArgument.Split(';');
    }

ただし、ボタンがクリックされたときにクリック メソッドが起動しません。これは、実行時にボタンを作成するという事実と関係があると思います。このメソッドを起動する方法について誰かがアドバイスしますか?

ありがとう、オンドレイ

4

1 に答える 1

0

OnInitをオーバーライドして、OnInitメソッドにコードを追加する必要があります。

protected override void OnInit(EventArgs e) 
{
    base.OnInit(e);
    Button btn = new Button();
    btn.ID = "btn1";
    btn.Text = "Button1";   
    btn.Click += new EventHandler(btn_Click);
    this.form1.Controls.Add(btn);
}

void btn_Click(object sender, EventArgs e)
{     
    Button bt = (Button)sender;
    bt.Text = "Changed";        
}
于 2012-05-09T11:39:21.737 に答える