private void Form1_Load(object sender, EventArgs e)
{
MainMenuStrip.Items.Clear();
//DataSet1.T_MENU_INFODataTable dt = new DataSet1.T_MENU_INFODataTable();
//t_MENU_INFOTableAdapter1.Fill(dt);
DataSet ds = new DataSet();
ds.ReadXml("ctset.xml");
CreateMainMenu(MainMenuStrip, ds.Tables["t_menu_info"]);
}
void CreateMainMenu(MenuStrip menuStrip, DataTable dt)
{
DataRow[] drs = dt.Select("frm_father_id='-1'", "frm_order");
if (drs.Length > 0)
{
foreach (DataRow item in drs)
{
ToolStripMenuItem mi = new ToolStripMenuItem();
mi.Text = item["frm_cname"].ToString();
CreateMenuItem(mi, item["frm_id"].ToString(), dt);
menuStrip.Items.Add((ToolStripItem)mi);
}
}
}
void CreateMenuItem(ToolStripMenuItem mi, string fatherid, DataTable dt)
{
DataRow[] drs = dt.Select("frm_father_id='" + fatherid+"'", "frm_order");
if (drs.Length > 0)
{
foreach (DataRow item in drs)
{
ToolStripMenuItem mitem = new ToolStripMenuItem();
mitem.Text = item["frm_cname"].ToString();
mitem.Tag = item;
CreateMenuItem(mitem, item["frm_id"].ToString(), dt);
mi.DropDownItems.Add(mitem);
mitem.Click += new EventHandler(BindClickToInstinse);
}
}
}
void BindClickToInstinse(object sender, EventArgs e)
{
ToolStripMenuItem mi = sender as ToolStripMenuItem;
if (mi.HasDropDownItems)//如果有下一级目录就不实例化
{
return;
}
DataRow dr = mi.Tag as DataRow;
try
{
//Form f = System.AppDomain.CurrentDomain.CreateInstanceFrom(Application.StartupPath+"\\"+ dr["frm_dll"].ToString(), dr["frm_ename"].ToString()).Unwrap() as Form;
Form f = System.AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap(Application.StartupPath + "\\" + dr["frm_dll"].ToString(), dr["frm_ename"].ToString()) as Form;
f.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ctsets>
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
<t_menu_info frm_ />
</ctsets>