日期:2014-05-18  浏览次数:20732 次

按钮事件的问题
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,谢谢!!!!

------解决方案--------------------
你可以根据sender来判断。比如
C# code
MessageBox.Show("你单击了按钮!"+sender.ToString());

------解决方案--------------------
同一个事件也可以判断的
C# code

if(((Button)sender).Text = "btn1"){
}
else{
}

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

------解决方案--------------------
Button b = (Button)sender;
Response.Write(b.Text);