如何禁用菜单项?

时间:2013-06-20 14:51:50

标签: c# asp.net visual-studio-2012

我遇到了Menu的问题。我在MenuItem中添加asp.net。我正在使用c#。我想在用户的许可下禁用菜单父母和子女。 有3个用户是“用户”,“高级用户”和“BT_用户”。 “用户”拥有最差权限,“BT_User”拥有最佳权限。

我该怎么做?谁能回答我?

3 个答案:

答案 0 :(得分:4)

从这里实现你的逻辑..

       if(UserType == "Power-User")
        {
        MenuItem mnuItem = Menu1.FindItem("MenuOption"); // If delete a specific item

         //to remove
         Menu1.Items.Remove(mnuItem);
         //to disable and not remove 
         mnuItem.Enabled = false;
        }
        if (UserType == "BT_User")
      { 
       Your other logic
      }

答案 1 :(得分:1)

试试这个

        if (UserType == "Power-User")
            {
                Menu1.Items.Find("MenuToDelete1", true)[0].Enabled = false;
                Menu1.Items.Find("MenuToDelete2", true)[0].Enabled = false;

                //or

                Menu1.Items.Remove(Menu1.FindItem("MenuToDelete"));
                Menu1.Items.Remove(Menu1.FindItem("MenuToDelete2"));
            }
            if (UserType == "BT_User")
            {
                Menu1.Items.Find("DeletedItem1", true)[0].Enabled = true;
                Menu1.Items.Find("DeletedItem2", true)[0].Enabled = true;

                MenuItem item1 = new MenuItem();
                item.Text = "DeletedItem1";
                MenuItem item2 = new MenuItem();
                item.Text = "DeletedItem2";

                //or
                menuStrip1.Items.Insert(index1, item1);
                menuStrip1.Items.Insert(index2, item2);
            }

答案 2 :(得分:0)

只需利用Enabled的{​​{1}}属性即可。没有足够的信息告诉你如何围绕它构建逻辑,但当你想要禁用时,只需这样做:

MenuItem

这里需要注意的一点是,当您禁用父级时,您不需要继续禁用任何子级,因为menuItem.Enabled = false; 设置为Enabled时,不允许任何子级飞出

来自false属性的MSDN documentation

  

获取或设置一个值,该值指示是否启用了MenuItem对象,允许该项显示弹出图像和任何子菜单项。