Обновление данных в форме

240
23 августа 2017, 14:43

Есть две формы и статический класс для их передачи данных между ними, На форме1 есть кнопка при нажатии на которую открывается форма2 посредством ShowDialog()

В форме2 происходят некоторые манипуляции с данными которые записываются в статический класс.

После чего форму закрывают.

После закрытия формы2 на форме1 должны отобразится обновленные данные которые она получит из статического класса.

Для обновления данных на форме1 можно было бы прилепить кнопку...

Мне интересно,можно ли обновить данные в форме1 автоматически после закрытия фромы2?

Answer 1

Метод Form.ShowDialog — блокирующий, т.е. код после этого метода не будет выполняться пока форма не закроется.

Из документации к методу:

... When this method is called, the code following it is not executed until after the dialog box is closed.

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

Так что сразу после вызова ShowDialog можно обновлять данные в форме 1. Примерный код:

var form2 = new Form2();
form2.ShowDialog();
//форма 2 закрылась обновляем данные здесь
// ...
Answer 2

Используйте событие FormClosing в форме2 и разместите там тот же код, который бы разместили в обработчике нажатия на кнопку, которую "можно было бы прилепить"

READ ALSO
Не авторизируется с Google Play Servise

Не авторизируется с Google Play Servise

Не авторизируется с Google play, использую плагин для Unity версии 940

279
Visual studio 2017 разработка для android ошибка

Visual studio 2017 разработка для android ошибка

Ошибка CS1504 Не удалось открыть исходный файл "C:\Users\User\Documents\Visual Studio 2017\Projects\PacMan\PacMan\Gamecs" — Была сделана попытка загрузить программу, имеющую...

286
Отмена загрузки WebClient

Отмена загрузки WebClient

привет есть не большая проблема вот метод для загрузки с URL картинки

264
Непредвиденное исключение в методе

Непредвиденное исключение в методе

Есть метод для отсечки по времени выполнения асинхронной задачи, выглядит он вот так:

230