Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
polsok
3 / 3 / 1
Регистрация: 20.03.2011
Сообщений: 348
#1

Вызвать событие при закрытии дочерней формы - C#

26.08.2014, 20:19. Просмотров 2674. Ответов 7
Метки нет (Все метки)

При закрытии дочерней формы мне нужно вызвать метод в главной форме. Подскажите как это сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2014, 20:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вызвать событие при закрытии дочерней формы (C#):

.NET 4.x Ошибка при закрытии дочерней формы - C#
Привет! Есть баг, который никак не могу исправить. Существуют 2 формы Form1 и Form2, при этом Form1 - Главная, а Form2 - дочерняя. ...

Завершение задач при закрытии дочерней формы - C#
Что мы имеем. - дочерняя форма программы. - мой класс, в котором реализована работа с Task-ами (ThreadController). в этом...

Обновление родительской формы при закрытии дочерней - C#
Здрасте гуру! Есть такая проблема, пытаюсь обновить (перерисовать?) treeview в родительской форме при закрытии дочерней формы, в которой...

Завершение процесса при закрытии дочерней формы - C#
Много разных способов в интернете и мало толковых разъяснений. Подскажите как осуществить сие деяние?

.NET 4.x Как при закрытии дочерней формы обновить компоненты на родительской - C#
Здравствуйте. Собственно есть дочерняя форма(запущена showdialog()) и на ней кнопка(close()). Как сделать чтоб при нажатии на эту кнопку...

При закрытии дочерней формы, почемуто закрывается все приложение - C#
В Programme.cs Application.Run(new Form6()); тоесть главная форма это форм 6. Но когда я пишу в обработчике другой дочерней формы...

7
XRoy
856 / 706 / 217
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
26.08.2014, 20:22 #2
Используйте событие
0
polsok
3 / 3 / 1
Регистрация: 20.03.2011
Сообщений: 348
26.08.2014, 20:23  [ТС] #3
XRoy, плохо у меня с событиями и делегатами. Подскажи как это сделать, дай конструкцию что ли.
0
XRoy
856 / 706 / 217
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
26.08.2014, 20:44 #4
polsok,
Самый простой пример
C#
1
2
3
            Form f = new Form();
            f.Show();
            f.FormClosed += (obj, args) => MessageBox.Show("Form closed!");
2
some_name
Вежливость-главное оружие
227 / 225 / 55
Регистрация: 19.02.2013
Сообщений: 1,441
26.08.2014, 20:49 #5
Вот так можно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public FormMain()
        {
            InitializeComponent();
            Form childForm = new Form();
            childForm.Owner = this;
            childForm.FormClosed += new FormClosedEventHandler(NotifyAboutClosedChildForm);
            childForm.Show();
        }
 
        private void NotifyAboutClosedChildForm(object sender, FormClosedEventArgs args)
        {
            MessageBox.Show(args.CloseReason.ToString());
        }
1
insite2012
Модератор
Эксперт .NET
4686 / 3643 / 883
Регистрация: 12.10.2013
Сообщений: 10,690
Записей в блоге: 2
26.08.2014, 20:55 #6
some_name, вот так короче и симпатичнее, ятд)))
polsok, вот пример. На осн. форме кнопка.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += (sender, e) =>
                {
                    Form f2 = new Form();
                    f2.FormClosed += (obj, arg) =>
                        {
                            MessageBox.Show("Form2 is closed now!", "Message");
                        };
                    f2.ShowDialog();
                };
        }
    }
}
1
some_name
Вежливость-главное оружие
227 / 225 / 55
Регистрация: 19.02.2013
Сообщений: 1,441
26.08.2014, 20:57 #7
insite2012, лямбды рулят и разруливают!
0
insite2012
26.08.2014, 20:58     Вызвать событие при закрытии дочерней формы
  #8

Не по теме:

some_name, 100500

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2014, 20:58
Привет! Вот еще темы с ответами:

Событие при закрытии формы - C#
Здравствуйте! Подскажите как сделать какую либо функцию при закрытии формы, например чтоб закрывалась вся программа!

Как из Формы контейнера (MdiParent) узнать о закрытии дочерней формы - C#
Всем привет! Вопрос вот в чем. Динамически создается дочерняя форма, и при ее закрытии нужно открыть другую дочернюю форму. Закрытие...

Из дочерней формы убрать событие из объекта главной формы (а потом обратно добавить) - C#
Есть основная форма, которое я называю главной формой. Создаю дочернюю форму - "Настройки", на которой задаю настройки отображения...

.NET 4.x Ошибка "Невозможно вызвать Invoke или BeginInvoke." при закрытии формы - C#
Всем привет! Когда закрываю приложение если строка 78 закомментирована, то в строке 80 появляется исключение "Невозможно вызвать Invoke...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
26.08.2014, 20:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru