Передача переменных между Windows Forms Windows без ShowDialog ()

Когда вы программируете приложение Windows Forms, вам непременно потребуется получить переменные из второго окна формы, например из формы параметров или всплывающего окна поиска.

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

Быстрый способ передачи переменных между формами – использование делегатов. Вы можете установить обработчик события для события закрытия второй формы и обработать событие в первой форме. Это позволяет вам захватывать переменные до закрытия второго окна формы.

Для этого упражнения мы будем предполагать, что у нас есть две формы:

MainForm

OptionsForm

Далее мы будем предполагать, что нажали какую-то кнопку, которая открывает OptionsForm с вызовом метода Show (). Теперь давайте посмотрим на магию:

……. чик …….

OptionsForm theform = new OptionsForm ();
theform.Closing + = новый CancelEventHandler (theform_Closing);
theform.Show ();

}

private void theform_Closing (отправитель объекта, CancelEventArgs e)
{

OptionsForm theform = (OptionsForm) отправитель;

// Захватить переменную из формы параметров. Форма параметров должна установить эту переменную до ее закрытия, а переменная должна быть помечена как открытая.
string localvar = theform.thestringvariable;

}

Это все, что нужно сделать.

Оцените статью
TutoryBird.Ru
Добавить комментарий