sos ! winform 动态加载menustrip ,结果一片空白,不知所措
menuStrip1.Items[item.Name].Enabled = true;//这个地方总报错,提示没有定义对象???
注释掉后运行,结果一片空白,不知所措!
后台数据库表:
id , fmuname,fmuid, menuname,            menucap
1		0	AppManage	       投保单管理
2	NULL	0	ReportManage	统计报表
3	NULL	0	SystemManage	系统管理
4	投保单管理	1	AppNewadd	投保单录入
5	投保单管理	1	AppModify	投保单复核
6	投保单管理	1	AppResult	投保单回销
7	统计报表	2	SalReport	承保业绩报表
8	统计报表	2	SalaryReport	营业收入报表
9	统计报表	2	PreSalReport	预收业绩报表
10	NULL	0	usermg	用户设置
11	NULL	0	reion	机构设置
12	NULL	0	dept	部门设置
代码如下:
private void frmMain_Load(object sender, EventArgs e)
         {
             InitMenuItem();
             //SetMenuItemByRole();
         }
  #region InitMenuItem()初始化一级菜单
         /// <summary>
         /// InitMenuItem()初始化一级菜单,其父菜单id为0
         /// </summary>       
         private void InitMenuItem()
         {
             string sql = "select * from tb_menu where fmuid = 0 "; //一级菜单,其父菜单id为0
             //string tb = "tb_menu";
            DataTable dt = boperate .GetTableBySql(sql);
            foreach (DataRow dr in dt.Rows)
             {
              ToolStripMenuItem item = new ToolStripMenuItem();
              item.Name = dr[3].ToString(); //menuname
              menuStrip1.Items[item.Name].Enabled = true;//这个地方总报错,提示没有定义对象???
              InitSubMenuItem(menuStrip1.Items[item.Name]);
             }
         }
         #endregion          
         #region InitSubMenuItem(ToolStripItem item) 初始化一级菜单的所有子菜单          
         private void InitSubMenuItem(ToolStripItem item)
         {
             if (item != null)
             {
                 string mname = item.Name;
                 ToolStripMenuItem pItem = (ToolStripMenuItem)item;
                 //根据父菜单项加载子菜单
                 string sql = "select * from tb_menu where fmuname ='" + mname + "'";
                 DataTable dt = boperate.GetTableBySql(sql);
                 if (dt.Rows.Count != 0)
                 {
                     foreach (DataRow dr in dt.Rows)
                     {
                         ToolStripMenuItem subItem = new ToolStripMenuItem();
                         subItem.Name = dr[3].ToString();
                        // subItem.Text = dr[4].ToString();
                         try
                         {
                             pItem.DropDownItems[subItem.Name].Enabled = true ;
                         }
                         catch (Exception e)
                         {
                             MessageBox.Show(e.Message);
                         }
                     }
                 }
             }
         }
       #endregion  
         #region SetMenuItemByRole() 根据用户在用户权限表中的权限动态的设置能使用的菜单项。
         //对一级菜单进行权限设置
         private void SetMenuItemByRole()
         {
             string sql = "select * from tb_menu where id in" +
                       "(select menuid from tb_rolemenu where roleid='" + frmlogin.M_str_right + "') and fmuid = 0";
             DataTable dt =boperate .GetTableBySql(sql);
             foreach (DataRow dr in dt.Rows)