我根据记录用户角色禁用某些ToolStripMenuItem会遇到一些问题。
这是我在表单中获取所有按钮的递归方法...
public IEnumerable<Button> Buttons
{
get
{
List<Button> buttons = new List<Button>();
foreach (Control ctrl in Form.ActiveForm.Controls)
{
Button btn = ctrl as Button;
if (btn != null)
{
buttons.Add(btn);
}
}
return buttons;
}
}
这是检查用户是否具有权限并禁用按钮的方法:
public static void ActiveButtons(string user, MenuStrip menu)
{
if (CanNavigate(user))
{
foreach(Control c in Form.ActiveForm.Controls)
{
if (c.GetType() == typeof(MenuStrip))
{
foreach (ToolStripMenuItem item in menu.Items)
{
if (item.Name == "novoToolStripMenuItem")
{
item.Visible = false;
}
else
{
item.Visible = true;
}
}
}
}
}
}
然后,从Form的Load事件中调用该函数:
Extensions.UserInfo.ActiveButtons(Extensions.UserInfo.CurrentLoggedUser, menuStrip);
但是,当表单加载了无法导航的用户时,MenuStrip项仍然可以点击。
有人可以帮我解决这个问题吗?
由于