Вопрос:
Я хочу создать несколько форм, и когда я нажму кнопку “Назад”, он вернется в форму1. Я попробовал это C++/CLI – как открыть новую форму и обратно, но когда я нажимаю кнопку в форме2, чтобы вернуться к form1, она получает сообщение об ошибке. “Исключение NullReferenceException было необработанным”
Form1
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(); }
Form2
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 но вы не используете его внутри button1_Click.
Вместо этого:
Form2 ^ frm2 = gcnew Form2();
Сделай это:
Form2 ^ frm2 = gcnew Form2(this);