Hi, To do what do you want, you´ll have to do forward declaration, in the same way explained by Navaneeth. /*Form1.h*/ #pragma once ref class Form2; // forward declaration /* prototype */ private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e); /*Form1.cpp*/ #include "Form1.h" #include "Form2.h" // here, you have to add the real declaration. System::Void Form1::button1_Click(System::Object^ sender, System::EventArgs^ e) { Form2 ^ frm = gcnew Form2; frm->Show(); this->Close(); } /*Form2.h*/ #pragma once #include "Form1.h" // Can be here becouse Form1.h don´t have a referece to this file. /* Can be inline */ private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { Form1 ^ frm = gcnew Form1; frm->Show(); this->Close(); }