1

実行時に生成されたクリックされたボタンにイベントを添付したい。ここまでコードを書きましたが、ボタンの ID をメソッドに渡すことができません。これが私のコードです

このコードではエラーが発生しません。別の問題は、クリック イベントの後でコントロールが洗い流されることです。これを防ぐ方法は?

protected void Button1_Click(object sender, EventArgs e)
   {
     int i = int.Parse(TextBox1.Text);
     for (int x = 1; x <= i; x++)
     {
       Button b = new Button();
       b.ID = "btn_" + x.ToString();
       b.Text = "btn_" + x.ToString();
       b.Click += new System.EventHandler(myEventHandler);
       pnlHolder.Controls.Add(b);
     }
   }

 private void myEventHandler(object sender, EventArgs e)
 {
   txtMain.Text = sender.ToString(); // I want to know which button was pressed
 }
4

2 に答える 2

2

試す、

txtMain.Text = (sender as Button).Name;

また

txtMain.Text = (sender as Button).Text;
于 2012-09-28T02:17:21.610 に答える
2

これを試して

 private void myEventHandler(object sender, EventArgs e)
 {
   Button b = (Button) sender;
   txtMain.Text = b.ID;
   //
   txtMain.Text = b.Text;

   if(b.ID == "button1")
     doThis();
   else if(b.ID == "button2")
     doThat();
 }
于 2012-09-28T02:18:23.040 に答える