0
我有form1和form2。打開form2我們可以點擊按鈕btn。我們使用指針f2指向form2,並且使用show(this)打開它,我們使用公共函數DialogClosed使f2指向nullptr。在哪些情況下,我們只能在實現文件中寫入函數的定義?
在Form1.h 我有:
#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.h我有:
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.
}
}
我的問題:爲什麼我們會在實現文件中寫入Definiton Form2_FormClosed而不是頭文件。我試圖在頭文件中寫入定義,但它不起作用。 我需要你的幫助,請給我你的意見。
請修復您的標記,您的問題是C++而不是C#。 – Polyfun