在做客户端程序的时候,经常会有一种情况就是有很多窗体,然后每个窗体都要加点击弹窗的事件,如果界面很多,这无疑是一个很不好的实现方式,下面通过重写菜单栏的点击事件,实现每个菜单都是同样的事件,这种方法,在其他控件上也都可以用,根据例子改改就好了
首先:看下项目结构
BaseForm是窗体的积累,主要是子窗体的公共方法等,子窗体都要继承BaseForm,Form1是主窗体,Form2以及Form3都是子窗体,FormEventArgs是继承了EventArgs,并且添加了需要显示的form的字段。
主要代码段:
private void Form1_Load(object sender, EventArgs e)
{
try
{
List<ReToolStripMenuItem> list = new List<ReToolStripMenuItem>();
//b获取Form2以及Form3的实例,并且在菜单中加入点击事件,传入form的参数
foreach (var frm in new BaseForm[2] { new Form2(), new Form3() })
{
frm.MdiParent = this;
ReToolStripMenuItem