Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# winform文本框未更新_C#_Winforms - Fatal编程技术网

C# winform文本框未更新

C# winform文本框未更新,c#,winforms,C#,Winforms,我有两个WinForm1和form2,如下所示: public partial class Form1 : Form { Form2 frm2; int count = 0; public bool fromForm2; public Form1(bool fromForm2 = false) { InitializeComponent(); this.fromForm2 = fromForm2; Me

我有两个WinForm1和form2,如下所示:

public partial class Form1 : Form
{
    Form2 frm2;
    int count = 0;
    public bool fromForm2;

    public Form1(bool fromForm2 = false)
    {
        InitializeComponent();

        this.fromForm2 = fromForm2;

        MessageBox.Show(fromForm2.ToString());
        if (fromForm2 == true) { 
            test();
        }

    }

    private void button1_Click(object sender, EventArgs e)
    {


        if (frm2 == null)
        {
            frm2 = new Form2();   //Create form if not created
            frm2.FormClosed += frm2_FormClosed;  //Add eventhandler to cleanup after form closes
        }

        frm2.Show(this);  //Show Form assigning this form as the forms owner

    }

    void frm2_FormClosed(object sender, FormClosedEventArgs e)
    {
        frm2 = null;  //If form is closed make sure reference is set to null
        Show();
    }



    public void test ()
    {

        textBox1.Text = "ABCDFGHIJKLM";
        MessageBox.Show(textBox1.Text);
    }
}
表格二

public partial class Form2 : Form
{
    Form1 f1;

    public Form2()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {

        Form1 objj = new Form1(true);

        objj = (Form1)Application.OpenForms["Form1"];


        objj.fromForm2 = true;


        objj = null;
    }


}

我想单击form2中的按钮,将运行test(),但我发现,如果我使用if(fromForm2==true){}if语句,test()函数将不会更新(重新绘制?)文本值以显示到textBox1,有人知道这是什么原因吗?

看看代码的这一点:
Form1 objj=new Form1(true);objj=(Form1)Application.OpenForms[“Form1”]
显然,
objj
包含的另一个实例与您在第一条语句中创建的实例不同。一个打开的实例,可能使用了
Form1
的默认无参数构造函数,这意味着
fromForm2=false
@RezaAghaei如何解决问题?您使用的是分部类,可以直接访问变量。尝试在字符串变量中分配textbox值并访问它。我已经重建了整个问题,问题解决了