私は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 をヘッダー ファイルではなく実装ファイルに記述する必要があるのですか。ヘッダーファイルに定義を書き込もうとしましたが、うまくいきませんでした。あなたの助けが必要です、あなたの意見を教えてください。