繁体   English   中英

如何从mdi子窗体中获取mdi父控件

[英]how to get mdi parent control from mdi child form

有一个mdi父窗体包含menustrip最初用户从子登录窗口成功登录后禁用菜单条..成功登录后我需要启用mdi父菜单条

到目前为止我尝试过的是这样的事情,但它没有用。

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

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

从儿童形式改变主要形式的属性对我来说是一种不好的方式。 如何创建登录对话框表单并仅用于请求登录和密码? 默认的登录表单场景非常简单:

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

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

假设您有一个名为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重新指定为您的特定表单类型,允许您访问自定义属性。

;-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM