private void Form1_Load(object sender, EventArgs e)
        {            Button btn = new Button();
            btn.Text = "按钮名称";
            btn.tag="1";
            this.Controls.Add(btn);
            btn.Left = 10;
            btn.Top =10;
            btn.Visible = true;
            btn.Click += new EventHandler(Btn_Click);            Button btn2 = new Button();
            btn2.Text = "按钮名称2";
            btn.tag="2";
            this.Controls.Add(btn2);
            btn2.Left = 10;
            btn2.Top = 30;
            btn2.Visible = true;
            btn2.Click += new EventHandler(Btn_Click);
        }        private void Btn_Click(object sender, EventArgs e)
        {
            MessageBox.Show("单击了按钮!");
            
        }大家请看上面的代码,几个动态加载的按钮的单据事件同时指定到了一个地方,现在我想要知道单击的是哪个按钮,就是在Btn_Click中得到按钮的tag,谢谢!!!!

解决方案 »

  1.   

    你可以根据sender来判断。比如MessageBox.Show("你单击了按钮!"+sender.ToString());可以显示出按钮的信息。
      

  2.   

    同一个事件也可以判断的if(((Button)sender).Text = "btn1"){
    }
    else{
    }
      

  3.   

    额,刚才不清楚sender怎么取文本,参考LS的
    MessageBox.Show("你单击了"+((Button)sender).Text+"按钮!");
      

  4.   

    Button b = (Button)sender;
    Response.Write(b.Text);
      

  5.   


    Btn_Click(object sender, EventArgs e)
    {
           //sender 为事件发起者,就是当前单击了对象。可以直接通过强制转换得到按钮对象
            if(sender is Buttn)
           {
             Button src=sender as Button;
             if(src.Name=="你要操作的按钮名称")
             {
               //TODO:Do Something
             }
           }
    }