【问题标题】:MDIContainer Pass variable and One windowMDIContainer 传递变量和一个窗口
【发布时间】:2011-08-11 17:18:54
【问题描述】:

i
你好,
m 使用 MDIContainer。
1. 如何将变量从父母传递给孩子?
2.如何禁止打开多个具有相同名称的窗口(这意味着在我的MenuStrip中有Ordre,Tarif,Config ...当用户已经打开Ordre时,当他再次单击menustrip ordre时,它不会打开一个新窗口/创建了一个新子窗口,但指向已经打开的顺序窗口)?

感谢之前。

【问题讨论】:

    标签: c# winforms variables containers mdi


    【解决方案1】:

    在您的 mdicontainer 窗口中创建私有、受保护或公共成员:

    class MyMdiContainer : Form
    {
        private object m_var;
    
        // Property approach
        public object MyVar
        {
            get { return m_var; }
            set { m_var = value; }
        }
    }
    

    这是 mdi 孩子:

    class MyMdiChild : Form
    {
        private object m_childVar;
    
        void Communicate()
        {
            // Read variable
            this.m_childVar = ((MyMdiContainer) this.MDIParent).MyVar;
    
            ((MyMdiContainer) this.MDIParent).MyVar = "Child Foo";
        }
    }
    

    在上面的示例中,我们使用了两个字段,每个字段用于两个类,属性用于将 var 存储在 MDI 父级中,子级中的方法用于对变量进行通信并将副本存储在子级中。

    这对父母到孩子很有用,但对于父母与许多孩子的同步,它应该以不同的方式实现。

    【讨论】:

    • 感谢您的回复。我使用通过构造函数传递。公共 Lordre() { InitializeComponent(); } public Lordre(string ClientID) { InitializeComponent(); lbl_Err.Text = "qdsf" + ClientID; }
      我想知道 Program.cs 中是否有一个通用变量。这意味着一旦我输入它,我就可以从任何形式中检索值。
    • 您可以为此目的创建一个静态类,而不是 Program.cs 中的全局变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2021-11-20
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多