一、效果示意
点击顶部【工具栏按钮】的时候,等同与点击【导航菜单对应的按钮】
二、两组按钮对应关系
点击红色按钮激发对应橙色按钮的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();
}