0

有一个包含菜单条的 mdi 父表单最初在用户从子登录表单成功登录后菜单条被禁用.. 成功登录后我需要启用 mdi 父菜单条

到目前为止我尝试过的是这样的,但它不起作用。

if (username == validUsername && password == validPassword)
    {
             this.mdicontainer.menustrip.enabled = false;
    }

什么是从子窗体访问 mdiparent 控件的方法..

4

2 回答 2

2

从子窗体更改主窗体的属性对我来说是一种不好的方式。如何创建一个登录对话框表单并将其仅用于请求登录名和密码?默认登录表单场景非常简单:

  1. 您有主表单 (MainFrm) 并创建带有登录文本框、密码文本框和“确定”和“取消”按钮的登录表单 (LoginDlg)
  2. 在开始时(例如在 MainFrm_Shown),您创建 LoginDlg 的新实例并调用它的“ShowDialog()”方法
  3. 如果用户单击“确定”,您会从 LoginDlg 收到 MainFrm 中的登录名和密码
  4. 您在 MainFrm 中以某种方式分析登录名和密码
  5. 如果登录名和密码正确,则启用菜单条或其他
  6. 否则,您将显示错误消息并再次显示 DialogFrm

以下是一些有关创建登录表单的有用链接:

于 2013-08-31T18:46:31.070 回答
0

假设您有一个名为MDIMaster的 MDI 表单,具有您自己的名为MenuStripEnabled的自定义属性和一个名为MainMenuStripControl的菜单条控件:

        // Property variable
        private bool _MenuStripEnabled = true;

        // Custom property
        public bool MenuStripEnabled
        {
            get { 
               return _MenuStripEnabled; 
            }
            set { 
               _MenuStripEnabled = value; 
               this.MainMenuStripControl.Enabled = value;
            }
        }

然后从子窗体调用它,你只需这样做:

        (this.MdiParent as MDIMaster).MenuStripEnabled = false;

as MDIMaster”部分将通用 MdiParent 重新分配为您的特定表单类型,允许您访问自定义属性。

;-)

于 2014-08-09T20:34:15.210 回答