Закрытие одной формы из другой? - PullRequest
5 голосов
/ 25 июня 2010

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

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

Parent form > Opens child form
Child gathers information > User clicks ok in child > child closes, parent closes

^ это то, что я хочу

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

Любая помощь будет высоко ценится. На самом деле, это было бы очень важно. Если бы я мог узнать, как заставить мои формы общаться друг с другом, я мог бы действительно нанести большой ущерб (в хорошем смысле 8D).

Ответы [ 2 ]

6 голосов
/ 25 июня 2010

В родительской форме вы можете сделать что-то вроде этого:

ChildForm f = new ChildForm();
f.FormClosed += (o,e) => this.Close();
f.Show();
1 голос
/ 26 июня 2010

Попробуйте это в родительской форме:

using (var childForm = new ChildForm())
{
    if (childForm.ShowDialog() == DialogResult.OK)
    {
        Close();
    }
}

Ваша дочерняя форма должна возвращать DialogResult, нажимая кнопки (OK или Отмена) и / или устанавливая свойства AcceptButton и CancelButton в конструкторе.

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