Winforms 返回(返回)windows窗体c++;
我想创建多个表单,当我单击“上一步”按钮时,它将返回到表单1。我尝试过这个,但是当我点击表单2中的按钮返回表单1时,它得到了一个错误。“未处理NullReferenceException” 表格1Winforms 返回(返回)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
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
类之外访问。