我的用户权限,存储的每个menuItem的名称,我想在主屏面中初始化,得到mainmenu中的每个菜单的name通过比较,如果有则 enabled=true,否则=false来显示用户的操作权限.

解决方案 »

  1.   

    private string 权限 = ",a,b,c,d,";
    private void ScanMenuItem(MenuItem AMenuItem)
    {
        if (AMenuItem == null) return;
        AMenuItem.Enabled = 权限.IndexOf("," + AMenuItem.Name.ToLower + ",") >= 0;
        foreach (MenuItem vMenuItem in AMenuItem.MenuItems)
            ScanMenuItem(vMenuItem);
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        foreach (MenuItem vMenuItem in mainMenu1.MenuItems)
        {
            ScanMenuItem(vMenuItem);
        }
    }
      

  2.   

    如果没有Name你可以用Caption取代
      

  3.   

    我提供的只是如何遍历MenuItem的方法
      

  4.   

    没有Name,也没有caption
    用的是这个类 MenuItem
      

  5.   

    vs2003 menuitem
    没有Tag属性的
      

  6.   

    是有text,不过记录的是它的文字内容,有没有属性可以用来记录menuitem的NAME 这样我的数据库存储权限时,存储NAME来,遍历,如果界面的菜单的name=数据存储的name则,就显示否则不显示。