我有form1和form2。要打开 form2,我们应该点击按钮 btn。我们使用指针 f2 指向 form2 的指针,然后使用 show(this) 打开它,我们使用公共函数 DialogClosed 使 f2 指向 nullptr。
在 Form1.hi 中有:
#include "Form2.h"
Private: Form2^ f2;
namespace WinDialog
{
private: System::Void btn_Click(System::Object^ sender, System::EventArgs^e)
{
if (f2== nullptr)
{
f2=gcnew Form2();
f2->Show(this);
}
else
f2->Activate();
}
public: void DialogClosed( )
{
f2= nullptr;
}
}
在 Form2.hi 中有:
private:System::Void Form2_FormClosed(Object^ FormClosedEventArgs^e);
在 Form2.cpp 我有:
#include "stdafx.h"
#include "Form1.h"
namespace WinDialog
{
System::Void Form2::Form2_FormClosed(Object^ sender, FormClosedEventArgs^ e)
{
Form1^ temp = (Form1^)this->Owner;
temp->DialogClosed();//hier we call the public function in Form1.
}
}
我的问题:为什么我们应该在实现文件中而不是在头文件中编写定义 Form2_FormClosed。我试图在头文件中写入定义,但它不起作用。我需要你的帮助,请给我你的意见。