如何从子表单管理Mdiparent中的menuStrip?

时间:2015-05-25 08:15:16

标签: c# winforms

我有两种形式:登录(子)和Form1(作为MdiParent) 登录表单有3个角色,每个角色对menuStrip具有不同的访问控制

示例: form1trip in form1:

UIKeyboardWillChangeFrameNotification

角色:管理员,培训师,实习生 登录后,可以访问admin的菜单只有文件(登录,注销)和主(查看)。

所以我的问题是如何在登录表单中禁用/隐藏admin的菜单注册表?

3 个答案:

答案 0 :(得分:0)

管理员成功登录后,您只需转到要隐藏的特定菜单项,并将其Visible属性设置为false

((Form1)this.MdiParent).RegisterMenuItem.Visible = false;

您必须确保菜单项不是私密的。它必须是内部的或公开的。

答案 1 :(得分:0)

一种方法是在MDI表单中创建一个公共方法,其中包含禁用注册菜单的逻辑,然后从Login表单中调用它,如下所示:

在MDI表格中:

var parent = (Form1) MdiParent;
parent.DisableRegisterMenu();

在登录表格中:

setTimeout

/ A

答案 2 :(得分:0)

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;

        }