2012-03-07 69 views
0

我正在工作一个简单的表格,我花了一天多的时间来找出东西什么是DialogResult函数visual C++ 2010?

我想要的是点击form1中的一个按钮,然后弹出一个form2。我有以下代码

private: System::Void MyAdd_Click(System::Object^ sender, System::EventArgs^ e) { 
     Form2^ myForm2 = gcnew Form2(); 

    } 
}; 

但是,form2无法弹出。我真的不明白,所以我从一个例子复制更多的代码。尽管我认为它不会有用,但试试吧。然而,它的工作。

private: System::Void MyAdd_Click(System::Object^ sender, System::EventArgs^ e) { 
     Form2^ myForm2 = gcnew Form2(); 
     if (myForm2->ShowDialog()==System::Windows::Forms::DialogResult::OK) {} 
    } 
}; 

我的问题是,我已经在这两种情况下创建了窗体,为什么IF语句有区别?

回答

2

在这种情况下,没有什么区别,因为没有额外的事情。然而,常见的用法是like so

void ShowMyDialogBox() 
{ 
    Form2^ testDialog = gcnew Form2; 

    // Show testDialog as a modal dialog and determine if DialogResult = OK. 
    if (testDialog->ShowDialog(this) == ::DialogResult::OK) 
    { 

     // Read the contents of testDialog's TextBox. 
     this->txtResult->Text = testDialog->TextBox1->Text; 
    } 
    else 
    { 
     this->txtResult->Text = "Cancelled"; 
    } 

    delete testDialog; 
} 

检查return value让你看到对话框关闭方式。

如果你问为什么你需要拨打ShowDialog,这是因为即使你创建了你的表单,你还没有告诉系统显示它。请注意,ShowDialog块/在对话框关闭之前不会返回。

+0

我给你一个喜欢:) – Marco 2012-03-07 17:22:33

相关问题