使用 "System::Windows::Forms::DialogResult::OK" 返回上一个表格
Using "System::Windows::Forms::DialogResult::OK" to go back to previous form
我有两个单独的表格 list_of_students_page 和测试。
我在 list_of_students_page 中有一个按钮,单击该按钮可打开测试表单。我在测试表单中创建了一个按钮以返回 list_of_students_page。
在运行测试表单中的按钮时,单击两次即可。
我在 Visual Studio.
中使用 C++/CLI Windows 表单
list_of_students_page.h
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
CppCLR_WinformsProjekt1::testing^ testing_f = gcnew CppCLR_WinformsProjekt1::testing;
this->Hide();
testing_f->ShowDialog();
if (testing_f->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
this->Show();
}
}
testing.h
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
this->DialogResult = System::Windows::Forms::DialogResult::OK;
this->Close();
}
为什么会发生这种情况,我该如何解决?
你有:
testing_f->ShowDialog();
if (testing_f->ShowDialog() == System::Windows::Forms::DialogResult::OK)
调用独立的 ShowDialog 并没有真正意义,并且确实解释了为什么你必须点击按钮两次(它实际上是对话框的不同实例,它出现得太快你看不到)。
我有两个单独的表格 list_of_students_page 和测试。
我在 list_of_students_page 中有一个按钮,单击该按钮可打开测试表单。我在测试表单中创建了一个按钮以返回 list_of_students_page。
在运行测试表单中的按钮时,单击两次即可。
我在 Visual Studio.
中使用 C++/CLI Windows 表单list_of_students_page.h
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
CppCLR_WinformsProjekt1::testing^ testing_f = gcnew CppCLR_WinformsProjekt1::testing;
this->Hide();
testing_f->ShowDialog();
if (testing_f->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
this->Show();
}
}
testing.h
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
this->DialogResult = System::Windows::Forms::DialogResult::OK;
this->Close();
}
为什么会发生这种情况,我该如何解决?
你有:
testing_f->ShowDialog();
if (testing_f->ShowDialog() == System::Windows::Forms::DialogResult::OK)
调用独立的 ShowDialog 并没有真正意义,并且确实解释了为什么你必须点击按钮两次(它实际上是对话框的不同实例,它出现得太快你看不到)。