C ++ / CLI - como abrir um novo formulário e voltar

Estou criando um aplicativo em que o front-end precisa ser um Windows Form usando C ++ / CLI. O formulário é usado para fins de login.

No meu formulário, tenho um botão de registro. Ao clicar neste botão, um novo formulário deve ser aberto (fechando o formulário de login). Consegui isso com o seguinte código:

Form^ rgForm = gcnew RegisterForm;
rgForm->Show();
this->Hide(); // using this->Close() was closing the application

Agora quero um botão de cancelamento no formulário de registro, cujo clique deve abrir o formulário de login novamente e fechar o formulário de registro. Como faço para conseguir isso?

(Estou confuso com o uso deste-> Hide (), significa que o formulário existe, nós simplesmente não o mostramos e, mesmo depois da visibilidade do formulário de registro, o formulário de login ainda existe?)

Update: Agora, o identificador de formulário atual é passado para o construtor de formulários de registro (armazenando-o como uma variável privada com o nome loginForm na classe RegisterForm

A seguir é o código para o botão Cancelar, clique em:

// RegisterForm class constructor

RegisterForm(System::Windows::Forms::Form^ f)
{
    loginForm = f;
}

// Cancel button click

private: System::Void BtnCancel_Click(System::Object^  sender, System::EventArgs^  e) 
{
     loginForm->Show();
     this->Hide();
}

No botão cancelar, estou recebendo a exceção: "objeto não definido como instância"

Alguém por favor pode me ajudar

Obrigado

questionAnswers(3)

yourAnswerToTheQuestion