实践过程
效果
代码
public partial class Form : Form | |
{ | |
public Form() | |
{ | |
InitializeComponent(); | |
} | |
/// <summary> | |
/// 将MenuStrip控件中的首行命令项添加到TreeView控件中 | |
/// </summary> | |
/// <param treeV="TreeView">TreeView控件</param> | |
/// <param MenuS="MenuStrip">MenuStrip控件</param> | |
public void GetMenu(TreeView treeV, MenuStrip MenuS) | |
{ | |
bool Var_Bool = true; | |
for (int i =; i < MenuS.Items.Count; i++) //遍历MenuStrip组件中的一级菜单项 | |
{ | |
//将一级菜单项的名称添加到TreeView组件的根节点中,并设置当前节点的子节点newNode | |
TreeNode newNode = treeV.Nodes.Add(MenuS.Items[i].Text); | |
if (MenuS.Items[i].Enabled == false) //判断当前项是否为可用 | |
{ | |
newNode.ForeColor = Color.Silver; //改变树节点的字体颜色为不可用色 | |
Var_Bool = false; | |
} | |
else | |
{ | |
newNode.ForeColor = Color.Black; //改变树节点的字体颜色为可用色 | |
Var_Bool = true; | |
} | |
newNode.Tag = 0; //标识,有子项的命令项 | |
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中 | |
ToolStripDropDownItem newmenu = (ToolStripDropDownItem) MenuS.Items[i]; | |
GetCavernMenu(newNode, newmenu, Var_Bool); //添加多层命令项 | |
} | |
} | |
/// <summary> | |
/// 将MenuStrip控件中的多层命今项添加到TreeView控件中 | |
/// </summary> | |
/// <param newNodeA="TreeNode">TreeNode对象</param> | |
/// <param newmenuA="ToolStripDropDownItem">ToolStripDropDownItem对象</param> | |
/// <param BL="bool">标识(是否可用)</param> | |
public void GetCavernMenu(TreeNode newNodeA, ToolStripDropDownItem newmenuA, bool BL) | |
{ | |
bool Var_Bool = true; | |
if (newmenuA.HasDropDownItems && newmenuA.DropDownItems.Count >) | |
for (int j =; j < newmenuA.DropDownItems.Count; j++) //遍历二级菜单项 | |
{ | |
//将二级菜单名称添加到TreeView组件的子节点newNode中,并设置当前节点的子节点newNode2 | |
TreeNode newNodeB = newNodeA.Nodes.Add(newmenuA.DropDownItems[j].Text); | |
Var_Bool = true; | |
if (BL == false) //判断当前命令项的上一级命令是否可用 | |
{ | |
newNodeB.ForeColor = Color.Silver; //设置当前命令项的字体颜色为不可用色 | |
newNodeB.Tag =; //标识,不显示相应的窗体 | |
Var_Bool = false; | |
} | |
else | |
{ | |
if (newmenuA.DropDownItems[j].Enabled == false) //判断当前命令项是否为可用 | |
{ | |
newNodeB.ForeColor = Color.Silver; //设置当前命令项的字体颜色为不可用色 | |
newNodeB.Tag =; //标识,不显示相应的窗体 | |
Var_Bool = false; | |
} | |
else | |
{ | |
newNodeA.ForeColor = Color.Black; //设置当前命令项的字体颜色为可用色 | |
newNodeB.Tag = int.Parse(newmenuA.DropDownItems[j].Tag.ToString()); //标识,显示相应的窗体 | |
} | |
} | |
//将当前菜单项的所有相关信息存入到ToolStripDropDownItem对象中 | |
ToolStripDropDownItem newmenuB = (ToolStripDropDownItem) newmenuA.DropDownItems[j]; | |
if (newmenuB.HasDropDownItems && newmenuA.DropDownItems.Count >) //如果当前命令项有子项 | |
{ | |
newNodeB.Tag =; //标识,有子项的命令项 | |
GetCavernMenu(newNodeB, newmenuB, Var_Bool); //调用递归方法 | |
} | |
} | |
} | |
/// <summary> | |
/// 打开MenuStrip控件或TreeView控件相应的窗体 | |
/// </summary> | |
/// <param n="int">标识</param> | |
/// <param FName="string">名称</param> | |
public void frm_show(int n, string FName) | |
{ | |
switch (n) //通过标识调用各子窗体 | |
{ | |
case: break; | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
//打开记事本 | |
System.Diagnostics.Process.Start("notepad.exe"); | |
break; | |
} | |
case: | |
{ | |
//打开计算器 | |
System.Diagnostics.Process.Start("calc.exe"); | |
break; | |
} | |
case: | |
{ | |
//打开WORD文档 | |
System.Diagnostics.Process.Start("WINWORD.EXE"); | |
break; | |
} | |
case: | |
{ | |
//打开EXCEL文件 | |
System.Diagnostics.Process.Start("EXCEL.EXE"); | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
if (MessageBox.Show("确认退出系统吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == | |
DialogResult.OK) | |
Application.Exit(); //关闭当前工程 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
Form fp = new Form2(); //实例化一个窗体 | |
fp.Text = FName; //设置窗体的名称 | |
fp.ShowDialog(); //用模试对话框打开窗体 | |
fp.Dispose(); //释放窗体的所有资原 | |
break; | |
} | |
case: | |
{ | |
//打开帮助对话框 | |
MessageBox.Show("\t你可以到明日科技网站\t\n\n\t 得到你想知道的\n\t 谢谢使用!!"); | |
break; | |
} | |
} | |
} | |
private void Form_Load(object sender, EventArgs e) | |
{ | |
Frm_Logon F_Logon = new Frm_Logon(); | |
if (F_Logon.ShowDialog() == DialogResult.OK) | |
{ | |
GetMenu(treeView, menuStrip1); //将menuStrip1控件中的信息添加到treeView1控件中 | |
} | |
} | |
private void ToolStrip__Click(object sender, EventArgs e) | |
{ | |
frm_show(Convert.ToInt(((ToolStripMenuItem) sender).Tag.ToString()), ((ToolStripMenuItem) sender).Text); | |
} | |
private void toolStripButton_Click(object sender, EventArgs e) | |
{ | |
frm_show(Convert.ToInt(((ToolStripButton) sender).Tag.ToString()), ((ToolStripButton) sender).Text); | |
} | |
private void treeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) | |
{ | |
frm_show(Convert.ToInt(e.Node.Tag.ToString()), e.Node.Text); | |
} | |
} |