none
代码创建多个button的点击事件 RRS feed

  • 问题

  • for (int i = 1; i <= 38; i++)
            {
                Button lb = new Button();
                lb.ID = "lbl" + i.ToString();
                lb.Text = i.ToString();
                lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";
                this.panel.Controls.Add(lb);
            }

    然后运行之后,当用户点击一个按钮,我怎么分辨他点击的是那个?还有button的点击事件怎么写?

    2010年11月17日 8:24

答案

  • 你好

    或者你可以嘗試更改你以下的CODE 如下

    for (int i = 1; i <= 38; i++)
            {
                Button lb = new Button();
                lb.ID = "lbl" + i.ToString();
                lb.Text = i.ToString();
                lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";

    lb.Click += lb_Click;
                this.panel.Controls.Add(lb);
            }

    private void lb_Click(object sender, EventArgs e)
    {
    	Button btn = sender;
    	MessageBox.Show(btn.Text);
    
    }
    詳情可以參考以下URL, 有VB 的教學的 "VB.net Create Button Dynamically—VB.Net 用程式碼建立按鈕"
    http://blog.sharechiwai.com/2010/08/vb-net-create-button-dynamically-vb-net-%E7%94%A8%E7%A8%8B%E5%BC%8F%E7%A2%BC%E5%BB%BA%E7%AB%8B%E6%8C%89%E9%88%95/
    可以嘗試使用一些Website 來Convert VB to C#
    http://www.developerfusion.com/tools/convert/vb-to-csharp/
    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 le_wang 2010年11月17日 9:01
    2010年11月17日 8:30
    版主
  • 根据sender进行判断

     protected void Page_Load(object sender, EventArgs e)
      {
        
       for (int i = 1; i <5; i++)
        {
          Button lb = new Button();
          lb.ID = "lbl" + i.ToString();
          lb.Text = i.ToString();
          lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";
          lb.Click += new EventHandler(lb_Click);
          this.Panel1.Controls.Add(lb);
        }
    
    
      }
      protected void lb_Click(object sender, EventArgs e)
      {
        Response.Write(((Button)sender).Text);
      }
    

    http://blog.csdn.net/zx13525079024
    2010年11月17日 8:30
  • protected void Page_Load(object sender, EventArgs e)
    {
      for (int i = 1; i <= 38; i++)
      {
        Button lb = new Button();
        lb.ID = string.Format("button_{0}", i); //声明 ID
        lb.Click +=new EventHandler(lb_Click);
        lb.ID = "lbl" + i.ToString();
        lb.Text = i.ToString();
        lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";
        this.panel.Controls.Add(lb);
      }
    }
    
    void lb_Click(object sender, EventArgs e)
    {
      Button lb = sender as Button;
      Response.Write(lb.ID);
    }
    

    知识改变命运,奋斗成就人生!
    2010年11月17日 8:30
    版主

全部回复

  • 你好

    或者你可以嘗試更改你以下的CODE 如下

    for (int i = 1; i <= 38; i++)
            {
                Button lb = new Button();
                lb.ID = "lbl" + i.ToString();
                lb.Text = i.ToString();
                lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";

    lb.Click += lb_Click;
                this.panel.Controls.Add(lb);
            }

    private void lb_Click(object sender, EventArgs e)
    {
    	Button btn = sender;
    	MessageBox.Show(btn.Text);
    
    }
    詳情可以參考以下URL, 有VB 的教學的 "VB.net Create Button Dynamically—VB.Net 用程式碼建立按鈕"
    http://blog.sharechiwai.com/2010/08/vb-net-create-button-dynamically-vb-net-%E7%94%A8%E7%A8%8B%E5%BC%8F%E7%A2%BC%E5%BB%BA%E7%AB%8B%E6%8C%89%E9%88%95/
    可以嘗試使用一些Website 來Convert VB to C#
    http://www.developerfusion.com/tools/convert/vb-to-csharp/
    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 le_wang 2010年11月17日 9:01
    2010年11月17日 8:30
    版主
  • 根据sender进行判断

     protected void Page_Load(object sender, EventArgs e)
      {
        
       for (int i = 1; i <5; i++)
        {
          Button lb = new Button();
          lb.ID = "lbl" + i.ToString();
          lb.Text = i.ToString();
          lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";
          lb.Click += new EventHandler(lb_Click);
          this.Panel1.Controls.Add(lb);
        }
    
    
      }
      protected void lb_Click(object sender, EventArgs e)
      {
        Response.Write(((Button)sender).Text);
      }
    

    http://blog.csdn.net/zx13525079024
    2010年11月17日 8:30
  • protected void Page_Load(object sender, EventArgs e)
    {
      for (int i = 1; i <= 38; i++)
      {
        Button lb = new Button();
        lb.ID = string.Format("button_{0}", i); //声明 ID
        lb.Click +=new EventHandler(lb_Click);
        lb.ID = "lbl" + i.ToString();
        lb.Text = i.ToString();
        lb.Attributes["style"] = "margin-top:10px;margin-left:5px;display:block;float:left;width:80px;height:80px;background:#808080;";
        this.panel.Controls.Add(lb);
      }
    }
    
    void lb_Click(object sender, EventArgs e)
    {
      Button lb = sender as Button;
      Response.Write(lb.ID);
    }
    

    知识改变命运,奋斗成就人生!
    2010年11月17日 8:30
    版主