【问题标题】:Passing a variable from Child Form to Parent Form将变量从子窗体传递到父窗体
【发布时间】:2016-03-25 06:37:06
【问题描述】:

我正在使用容器(mdi 父级)打开主菜单。主菜单允许用户连接到数据库并打开其他程序。我正在尝试在容器(父窗体)上显示您连接到的数据库,但在将字符串从主菜单传递到容器时遇到问题。当用户单击连接按钮时,我不知何故需要容器有一个事件监听器来监听来自子窗体的按钮单击。当在子窗体上单击连接按钮时,它会将变量传递给父窗体。我该怎么做呢?

【问题讨论】:

标签: c# winforms


【解决方案1】:

只需声明一个公共变量,例如:在 Form2 中的 var1 并在从 Grid 中选择行时,将所选值分配给 Form2 公共变量 var1。

然后一旦你关闭 Form2。您可以通过说您在 Form1 中有一个文本框来访问 Form1 中的值,该文本框应该通过提及 as 从 Form2 的网格中获取选定的值

 Form2 f2=new Form2();
TextBox1.Text=f2.var1;

希望对你有帮助

【讨论】:

    【解决方案2】:

    也许你可以使用一个事件。因此,每次子表单上的数据库名称更改时,您都可以在父表单上得到回调

    孩子

    public partial class Child : Form
        {
            public event DatabaseChangeHandler DatabaseChanged;
            public delegate void DatabaseChangeHandler(string newDatabaseName);
    
            public Child()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //When the database changes
                if (this.DatabaseChanged != null)
                {
                    this.DatabaseChanged("The New Name");
                }
            }
        }
    

    父母

    public partial class Parent : Form
        {
            private Child childForm;
    
            public Parent()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // Open the child form
                childForm = new Child();
                childForm.DatabaseChanged += childForm_DatabaseChanged;
                childForm.ShowDialog();
            }
    
            void childForm_DatabaseChanged(string newDatabaseName)
            {
                // This will get called everytime you call "DatabaseChanged" on child
                label1.Text = newDatabaseName;
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多