如何c#winfroms中定义按钮的事件

爱上不会游泳的鱼 2010-10-17 11:11:08
小弟初学C#,现在假设有3个textBox1,textBox2,textBox3,3个按钮 button1,button2,button3,单击事件分别是

private void button1_Click(object sender, EventArgs e)
{

textBox1.text=""; //代码

}

private void button2_Click(object sender, EventArgs e)
{

textBox2.text=""; //代码

}

private void button3_Click(object sender, EventArgs e)
{

textBox3.text=""; //代码

}

每个按钮还有很多代码,做的都是同样的事,怎么样只编写一个按钮的代码,就可以实现3个按钮的代码,我问一些网友,说要定义事件,我看了书,感觉很模糊,希望知道的人说一下,贴出代码,感谢了。
...全文
111 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-10-17
  • 打赏
  • 举报
回复
button1.Click +=delegate(object sender,EventArgs e)
{
Button sender as Button;
};
this.button1.Click += new EventHandler(button_Click);
this.button2.Click += new EventHandler(button_Click);

void button_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
}

Rock870210 2010-10-17
  • 打赏
  • 举报
回复
楼主每个事件中做的事都不一样,如此就没有必要写在一起,即使写在一起还是要判断是哪个TextBox触发的事件。没必要
机器人 2010-10-17
  • 打赏
  • 举报
回复
Button btn = (Button)sender;
这样你就能知道是哪个Button按下了。
gomoku 2010-10-17
  • 打赏
  • 举报
回复
如果“做的都是同样的事”可以写在一起。
不过你给的例子中做的不是一样的事?
机器人 2010-10-17
  • 打赏
  • 举报
回复
那就抽出一个共通的方法:button_Click(object sender, EventArgs e)

然后在Form_Load里添加事件监听:
this.button1.Click += new System.EventHandler(this.button_Click);


private void Form1_Load(object sender, EventArgs e)
{
this.button1.Click += new EventHandler(button_Click);
this.button2.Click += new EventHandler(button_Click);
this.button3.Click += new EventHandler(button_Click);

}

void button_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
MessageBox.Show(btn.Text);
}
  • 打赏
  • 举报
回复
恩,我说错了,做的都不是一样的事。我试一下他们的代码

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧