Winforms 返回(返回)windows窗体c++;

Winforms 返回(返回)windows窗体c++;,winforms,c++-cli,Winforms,C++ Cli,我想创建多个表单,当我单击“上一步”按钮时,它将返回到表单1。我尝试过这个,但是当我点击表单2中的按钮返回表单1时,它得到了一个错误。“未处理NullReferenceException” 表格1 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { /* Form1::Hide(); Form2^ form2 = gcnew

我想创建多个表单,当我单击“上一步”按钮时,它将返回到表单1。我尝试过这个,但是当我点击表单2中的按钮返回表单1时,它得到了一个错误。“未处理NullReferenceException”

表格1

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

            /* Form1::Hide();
             Form2^ form2 = gcnew Form2();
             form2->ShowDialog();*/


             Form2 ^ frm2 = gcnew Form2();
             frm2->Show();
             this->Hide();
         }
表格2

Form2(System::Windows::Forms::Form ^ frm1)
{
    otherform = frm1;
    InitializeComponent();

}

private: System::Windows::Forms::Form ^ otherform;

#pragma endregion
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e
 {

 this->Hide();
 otherform->Show();   
 }

您已经创建了第二个
Form2
构造函数,但是您没有在
按钮1\u单击
中使用它

与此相反:

Form2 ^ frm2 = gcnew Form2();
这样做:

Form2 ^ frm2 = gcnew Form2(this);

您有一个接受表单引用的构造函数。你没有使用它。所以可以肯定的是,otherform仍然是nullptr。Kaboom.maybe您应该像这样调用
Form2
的非默认构造函数:
Form2^frm2=gcnewform2(this)“错误C3767:‘多个表单::表单2::表单2’:候选函数不可访问”这是我尝试该操作时出现的错误。您是否定义了
表单2(系统::Windows::表单::表单^frm1)
构造函数为
public
?我将其声明为private您正在访问
Form2
构造函数中的类
Form1
。将构造函数
声明为public
,否则它将无法在
Form2
类之外访问。