例えば、Form1からForm2というフォームを表示する場合は、
モーダル表示
表示したウィンドウしか操作できないウィンドウを開く
#include "Form2.h"
(中略)
Form2^ frm = gcnew Form2();
// モーダル表示
frm->ShowDialog(this);
モーダレス表示
表示したウィンドウと表示元のウィンドウの両方が操作できる
#include "Form2.h"
(中略)
Form2^ frm = gcnew Form2();
// モーダレス表示
frm->Show(this);
フォームを閉じる場合
frm->Close();
のようにします。
ShowDialogおよびShowの引数で渡しているthisは無くてもよいのですが、このthisを渡す事で、
Form2からthis->Ownerを参照する事で、親のフォーム(どのフォームから呼ばれたのか?)が分かるので、thisを渡した方が何かと便利です。
また、
frm->Hide();
のようにすると、フォームそのものは破棄されずウィンドウを非表示にする事ができます。
そのため、再びウィンドウを表示したい場合は、再度
frm->Show();
を呼び出すと、Hide()する直前の状態のフォームが表示されます。