C#一个button触发多个事件,怎么做呢?

Mou377 2017-02-26 10:18:56
有3个button: button1,button2,button3代表3个不同的命令。

比如:点击button1, 会有返回值A.
点击button2, 会有返回值B.
点击button3, 会有返回值C.


现在我想只用点击button4:
button1马上触发,等有返回值A的时候,button2会自动触发,等有返回值B的时候,button3也会自动触发,这时候有返回值C,结束。


怎么做呢?
...全文
1449 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天凤凰601 2017-02-27
  • 打赏
  • 举报
回复
你直接调用Button1 .Button2,Button2,的方法就行了
Mou377 2017-02-27
  • 打赏
  • 举报
回复 1
引用 4 楼 cpycpy000 的回复:
[quote=引用 2 楼 cpycpy000 的回复:] 可以使用async关键字 private async void Button4_Click(object sender, EventArgs e) { //进入函数时先把4个按钮的Enable改为false,因为async-await关键字是异步调用 await Task.Run(() => Button1.PerformClick()); await Task.Run(() => Button2.PerformClick()); await Task.Run(() => Button3.PerformClick()); }
顺便说明一下,这里用异步是为了保证用户体验,如果三个按钮的操作比较多的话,就用异步, 如果操作少的话,就直接用PerformClick()

private void Button4_Clisk(object sender, EventArgs e)
{
    Button1.PerformClick();
    Button2.PerformClick();
    Button3.PerformClick();
}
[/quote] 谢谢
cpycpy000 2017-02-26
  • 打赏
  • 举报
回复
引用 2 楼 cpycpy000 的回复:
可以使用async关键字 private async void Button4_Click(object sender, EventArgs e) { //进入函数时先把4个按钮的Enable改为false,因为async-await关键字是异步调用 await Task.Run(() => Button1.PerformClick()); await Task.Run(() => Button2.PerformClick()); await Task.Run(() => Button3.PerformClick()); }
顺便说明一下,这里用异步是为了保证用户体验,如果三个按钮的操作比较多的话,就用异步, 如果操作少的话,就直接用PerformClick()

private void Button4_Clisk(object sender, EventArgs e)
{
    Button1.PerformClick();
    Button2.PerformClick();
    Button3.PerformClick();
}
cpycpy000 2017-02-26
  • 打赏
  • 举报
回复
或者,把button 1,2,3中的具体操作各自封装成三个函数,然后button4直接调用函数就行

private void method1()
{
    //...button1
}
private void method2()
{
    //...button2
}
private void method3()
{
    //...button3
}

private void Button1_Click(object sender, EventArgs e)
{
    method1();
}
private void Button2_Click(object sender, EventArgs e)
{
    method2();
}
private void Button3_Click(object sender, EventArgs e)
{
    method3();
}

private void Button4_Clisk(object sender, EventArgs e)
{
    method1();
    method2();
    method3();
}
cpycpy000 2017-02-26
  • 打赏
  • 举报
回复
可以使用async关键字 private async void Button4_Click(object sender, EventArgs e) { //进入函数时先把4个按钮的Enable改为false,因为async-await关键字是异步调用 await Task.Run(() => Button1.PerformClick()); await Task.Run(() => Button2.PerformClick()); await Task.Run(() => Button3.PerformClick()); }
  • 打赏
  • 举报
回复
引用 楼主 Mou377 的回复:
现在我想只用点击button4: button1马上触发,
跟 button1 没有半毛钱关系。你要执行什么方法,直接调用方法就行了,例如调用方法
private void method1()
{
}

private void method4()
{
    ......
    method1();
}
纠结界面——按钮——干什么呢?

110,534

社区成员

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

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

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