你好,我有一個主窗體(Form1)和子窗體(Form5)。如果我第一次點擊一個按鈕,我希望它打開一個新窗體。但是,如果被點擊它的形成,我將填好的數據,第二次我想它來打開我開設了第一時間的形式,控股(文本框等)。這是我有: .cpp文件:從父窗體子窗體去,而無需創建gcnew形式
System::Void Form1::button5_Click(System::Object^ sender, System::EventArgs^ e){
formclick++;
if (formclick == 1)
{
Form5 ^dos1 = gcnew Form5(this, MyArray, MyArray1);
dos1->Show();
}
if (formclick==2)
{
otherform->Show();
}
Form1.h文件:
> Form1(System::Windows::Forms::Form^Form5)
> {
>
>
> otherform = Form5;
> InitializeComponent();
> } public: System::Windows::Forms::Form^otherform;
但是我得到的錯誤: 型 'System.NullReferenceException' 未處理的異常發生在系統.Windows.Forms.dll
其他信息:對象沒有設置爲一個對象的一個實例。
TIA
該構造函數你寫的是從來沒有使用過,所以「otherform」將始終nullptr。 Kaboom當然。當它是nullptr時創建一個新對象。您需要訂閱FormClosed事件才能可靠地將其設置回nullptr。然後在Form5中實現FormClosing來隱藏它。 –