Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将事件附加到动态创建的按钮单击_C#_Asp.net_Event Handling - Fatal编程技术网

C# 将事件附加到动态创建的按钮单击

C# 将事件附加到动态创建的按钮单击,c#,asp.net,event-handling,C#,Asp.net,Event Handling,我想将事件附加到运行时生成的按钮。到目前为止,我已经编写了代码,但无法将按钮的ID传递给该方法。这是我的密码 此代码没有任何错误,另一个问题是单击事件后控件被冲走。如何预防 protected void Button1_Click(object sender, EventArgs e) { int i = int.Parse(TextBox1.Text); for (int x = 1; x <= i; x++) { Button b =

我想将事件附加到运行时生成的按钮。到目前为止,我已经编写了代码,但无法将按钮的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
 }
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
int i=int.Parse(TextBox1.Text);
对于(intx=1;xtry

试试看

试试这个

 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();
 }
试试这个

 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();
 }

发件人作为按钮非常喜欢它(:+1发件人作为按钮非常喜欢它(:+1谢谢,+1,顺便说一句,您能帮我解决另一个问题吗?[回发后删除控件]Asp.net不像窗口窗体。控件状态在回发时丢失。这就是为什么Asp.net使用ViewState来记住您通过设计或标记添加的控件。您需要将按钮作为ViewState的一部分,或者在每次页面刷新时重新创建它们。谢谢,+1,顺便问一下,您能帮我解决另一个问题吗?[回发后删除的控件]Asp.net与窗口窗体不同。回发时控件状态会丢失。这就是Asp.net使用ViewState来记住通过设计或标记添加的控件的原因。您需要将按钮作为ViewState的一部分,或者在每次页面刷新时重新创建它们
 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();
 }