在Visual C ++中从子窗口返回到父窗口

时间:2013-07-09 05:24:14

标签: .net winforms c++-cli

我在Visual c ++中使用winForm来构建我的程序。从第一个窗口我需要在按钮单击时移动到另一个窗口。为此我使用下面的代码,它工作正常。

private: System::Void button3_Click(Object^  sender, EventArgs^  e) {
     this->Hide();
     Form2^ pp = gcnew Form2();
     pp->ShowDialog();
}

但是我需要在子窗口上使用“后退”按钮,单击该按钮将隐藏/禁用它并显示父窗口。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

首先,如果你想做一些导航类型的东西,你的父母对孩子的代码也不能正常工作。

现在我建议你从父母到孩子创建一个全局变量。 喜欢,

Form2^ pp ;

在构造函数中初始化它或创建父类的方法

像,

 //Create method or constructor,
 pp = gcnew Form2();

进行导航 像,

private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) 
{
      this->Hide();
      pp->ShowDialog();    
}

在这种情况下,无论您点击button3多少次,只会显示和隐藏一个子类实例。

没有问题是你想从子窗口返回父窗口窗体。您可以使用 this.Parent as Form

来实现此目的

像,

private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e)
{
    this->Hide();
    Form parentForm = (this.Parent as Form);
    parentForm ->Show();
}