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

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

Видео: Передать переменные между Windows Forms Windows без ShowDialog ()

Видео: Передать переменные между Windows Forms Windows без ShowDialog ()
Видео: Чем полезны 2 монитора? | Плюсы, минусы и особенности использования 2 мониторов. - YouTube 2024, Май
Anonim

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

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

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

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

MainForm

OptionsForm

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

……. snip…….

OptionsForm theform = new OptionsForm(); theform.Closing += new CancelEventHandler(theform_Closing); theform.Show();

}

private void theform_Closing(object sender, CancelEventArgs e) {

OptionsForm theform = (OptionsForm)sender;

// Grab the variable from the options form. The options form should set this variable before it closes, and the variable should be marked as public. string localvar = theform.thestringvariable;

}

Вот и все.

Рекомендуемые: