C#中自定义菜单(menuStrip)控件通过设置菜单Tag打开新的窗口
//窗体的构造函数
public MainForm()
{
InitializeComponent();
//初始化菜单点击事件
SetMenuClick();
}
/// <summary>
/// 初始化菜单并绑定菜单的点击事件ToolStripItem_Click
/// </summary>
public void SetMenuClick()
{
//菜单strip赋值
var menus = this.menuStrip1.Items;//获取7个主菜单
foreach (ToolStripMenuItem item in menus)//循环主菜单
{
foreach (ToolStripItem temp in item.DropDownItems)//循环主菜单下的子菜单
{
temp.Click += new EventHandler(ToolStripItem_Click);//给子菜单绑定点击
}
}
}
菜单点击事件:
private void ToolStripItem_Click(object sender, EventArgs e)
{
//定位目标
ToolStripItem item = (ToolStripItem)sender;
if (fm != null) fm.Close();
switch (item.Tag)
{
// 系统菜单
case "unit": fm = new EditUnit(); break;//单位
case "client": fm = new EditClient(); break;//客户
case "celltype": fm = new EditCellType(); break;//元件类型
case "cell": fm = new EditCell(); break;//元件
case "drive": fm = new EditDrive(); break;//驱动
case "power": fm = new EditPower(); break;//功率
case "brand": fm = new EditBrand(); break;//品牌
case "company": fm = new EditCompany(); break;//公司
case "subject": fm = new EditSubject(); break;//科目
case "proname": fm = new EditProname(); break;//品名
case "clientInfor": fm = new ClientInfor(); break;//客户信息管理
//产品菜单
case "protype": fm = new EditProtype(); break;//产品大类
//case "pro": fm = new EditPros(); break;//产品
case "qt": fm = new EditQuote(); break;//报价单
// case "qtmenu": fm = new EditQtMenu(); break;//报价明细
case "admin": fm = new EditAdmins(); break;
case "role": fm = new EditRole(); break;
//产品资料
case "image": fm = new EditImage(); break;//图片管理
case "pfd": fm = new EditPfds(); break;//工艺流程图
default:
fm = null;
break;
}
if (fm != null) ShowForm(fm);
}
//主窗口toolStripContainer嵌入打开窗口
public void ShowForm(Form form)
{
//C#的Winform开发分别用嵌入ToolStripContainer 与 Panel嵌入子窗体的(Form)方法
#region 用 嵌入ToolStripContainer 子form的方法
toolStripContainer1.ContentPanel.Visible = false;
// 释放之前 toolStripContainer1.ContentPanel 里面的控件
foreach (Control item in toolStripContainer1.ContentPanel.Controls)
{
item.Dispose();
}
// 设置窗体的层级
form.TopLevel = false;
// 去除边框
form.FormBorderStyle = FormBorderStyle.None;
// 设置停靠
form.Dock = DockStyle.Fill;
// 重置
//Panel son = new Panel();
//son.Dock = DockStyle.Fill;
//son.Controls.Clear();
//son.Controls.Add(form);
toolStripContainer1.ContentPanel.Controls.Clear();
toolStripContainer1.ContentPanel.Controls.Add(form);
form.Show();
Thread.Sleep(100);
toolStripContainer1.ContentPanel.Visible = true;
#endregion
}
查看更多关于C#中自定义菜单(menuStrip)控件通过设置菜单Tag打开新的窗口的详细内容...