如何从子窗体管理菜单条
本文关键字:管理 菜单 窗体 | 更新日期: 2023-09-27 17:50:41
我有2个表单:Login(子)和Form1(作为MdiParent)。
登录表单有3个角色,每个角色对菜单条
示例: menuStrip in form1:
-file (login, logout)
master (register, view)
角色:管理员、培训师、培训生。
登录后,admin可以访问的菜单只有file(登录、注销)和master(查看)。
所以我的问题是如何在登录表单中禁用/隐藏菜单注册管理?
一旦管理员登录成功,你可以简单地去到特定的菜单项,你想隐藏它的名称,并设置它的Visible
属性为false
:
((Form1)this.MdiParent).RegisterMenuItem.Visible = false;
您必须确保菜单项不是私有的。必须是内部的或公共的
一种方法是在MDI表单中创建一个公共方法,其中包含禁用注册菜单的逻辑,然后从登录表单中调用它,如下所示:
在MDI表单中:
public void DisableRegisterMenu()
{
registerMenuItem.Enabled = false;
}
登录表单:
var parent = (Form1) MdiParent;
parent.DisableRegisterMenu();
/
this is my login form codes :
if (count == 1)
{
UserInformation.CurrentLoggedInUser = (string)rdr["UserName"];
MessageBox.Show("Welcome " + comboBox1.Text + UserInformation.CurrentLoggedInUser);
UserInformation.CurrentLoggedInUser = (string)rdr["UserRole"];
if (UserInformation.CurrentLoggedInUser == "Administrator")
{
this.Close();
this.MdiParent = new Form1();
// ((Form1)this.MdiParent).hide();
//((Register_Training_Participant)this.MdiParent).Hide();
var parent = (Form1)MdiParent;
parent.AdminDisableControl();
}
//this is the code for my mainform :
public void AdminDisableControl()
{
regToolStripMenuItem.Visible = false;
}