Что такое функция DialogResult для Visual C ++ 2010? - PullRequest
0 голосов
/ 07 марта 2012

Я работаю над простой формой, я трачу больше суток, чтобы что-то выяснить

Я хочу нажать кнопку в форме 1, а затем открыть форму 2.У меня есть следующий код

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

     }
};

Однако, форма2 не может всплыть.Я действительно не понимаю, поэтому я копирую больше кода из примера.Хотя я не думаю, что это будет полезно, просто попробуйте.Однако это работает.

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

Мой вопрос заключается в том, что я уже создал форму в обоих случаях, почему оператор IF имеет значение?

1 Ответ

2 голосов
/ 07 марта 2012

В этом случае это не имеет значения, так как ничего лишнего не делается.Однако обычно используется , например, :

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;
}

Проверка возвращаемого значения позволяет увидеть, как диалоговое окно закрылось.

ЕслиВы спрашиваете, почему вам нужно позвонить ShowDialog, потому что, хотя вы создали свою форму, вы еще не сказали системе показать ее.Обратите внимание, что ShowDialog блокирует / не возвращает, пока диалоговое окно не будет закрыто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...