C# WinForm中点击一个ToolStripButton1工具栏按钮后激发另一个Button1按钮的Click事件【或者甚至是一组ToolStripButton激发另一组对应的Button】

一、效果示意

点击顶部【工具栏按钮】的时候,等同与点击【导航菜单对应的按钮】
请添加图片描述

二、两组按钮对应关系

点击红色按钮激发对应橙色按钮的Click事件
在这里插入图片描述

三、用代码invoke一个button按钮的click事件

使用PerformClick()

myButton.PerformClick();

四、如何用较少的代码完成成组按钮的Click事件的绑定

  • (1)工具栏菜单按钮的集合
List<ToolStripButton> stripButtons = new List<ToolStripButton> {toolStripButton账号管理,toolStripButton专业设置,toolStripButton班级信息,toolStripButton教师信息,toolStripButton学生信息,toolStripButton在线课堂,toolStripButton学习记录};
  • (2)左侧导航菜单按钮的集合
List<Button> menuButtons = new List<Button> {button111,button112,button113,button114,button115,button116 ,button117 }; //按钮对象集合  7个
  • (3)两组按钮映射配对,用Zip组装成命名元组
    【工具条按钮】Zip【菜单按钮】成一组named tuple
List<(ToolStripButton toolButton,Button menuButton)> toolStripButtonVsMenuButtons = stripButtons.Zip(menuButtons, (ToolStripButton toolBtn, Button menuBtn) => (toolBtn, menuBtn)).ToList();
  • (4)用ForEach()进行配对绑定
//【工具栏按钮点击事件】关联到【菜单栏按钮的点击事件】
foreach(var tp in toolStripButtonVsMenuButtons)
{
    tp.toolButton.Click += (object sender, EventArgs e) => 
    {
        tp.menuButton.PerformClick();
    };
}

或者用一行代码:

toolStripButtonVsMenuButtons.ForEach(tp => tp.toolButton.Click += (object sender, EventArgs e) => tp.menuButton.PerformClick());

附录:用常规方法实现的事件添加

常见的事件添加,本案例中,一共有2组按钮,每组7个

private void toolStripButton账号管理_Click(object sender, EventArgs e)
{            
    button111.PerformClick();
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值