在表单之间共享父变量

use*_*914 1 c# winforms

表单A打开表单B,并且表单A.visible = false;

表单 A 有一个公共 int 变量,我需要表单 B 中的控件才能访问和修改该变量。这可以完成吗,因为通过构造函数传递值只是一种方法!

那么如果可以的话,如果表单 A 不可见,是否仍然可以访问该值?

(表格 b 不应该是对话框!)

非常感谢!

编辑:我实际上不太明白解释。到目前为止是这样的:

在表格a中:

    //in global space
    public int temp = 123;

    //in form_load event
    Form setup = new setup();
    setup.Show();
    this.Visible = false;
Run Code Online (Sandbox Code Playgroud)

在表单设置中:

    //in form_load event
    textBox1.text = temp.toString();

    //in button_press event
    form a.temp = "456";
Run Code Online (Sandbox Code Playgroud)

我希望我已经清楚地解释了我的立场!

Sha*_*ard 5

首先,在表单 B 中具有表单 A 类型的成员字段:

private FormA parent;
Run Code Online (Sandbox Code Playgroud)

其次,在形式 B 中有这样的构造函数:

public FormB(FormA parent)
    : this()
{
    this.parent = parent;
}
Run Code Online (Sandbox Code Playgroud)

现在,当您创建表单 B 的实例时,传递对正在运行的表单 A 实例的引用:

FormB formB = new FormB(this);
formB.Show();
Run Code Online (Sandbox Code Playgroud)

parent您可以通过该字段访问公共财产,例如

//inside Form B code..
public Foo()
{
    parent.PUblicProp = "Hello";
}
Run Code Online (Sandbox Code Playgroud)