如何从子窗体管理菜单条

本文关键字:管理 菜单 窗体 | 更新日期: 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;
        }
相关文章: