2014-11-12 3 views
0

Я новичок в C#, и я читал документацию и старые вопросы, но не могу найти, как это сделать.C# Make Form1 Do Action После того, как Form2 закрыт

У меня есть две формы: Form1 и Form2.

Form1 содержит datagridview с контентом из файла. Кнопка Form1 открывает Form2, где пользователь может вводить информацию в текстовые поля. Затем пользователь нажимает кнопку на Form2, которая добавляет новое содержимое в файл. Все это прекрасно работает.

Теперь на Form2 есть кнопка выхода. Я хочу, чтобы, когда пользователь выходит из Form2, Form1 немедленно вызовет метод для перезагрузки datagridview, чтобы он был обновлен. Как я могу вызвать этот метод автоматически, когда Form2 закрыт?

Благодарим вас, ваша помощь с благодарностью!

+2

form2.Closing. – deathismyfriend

+0

Всё зависит от меня. Покажите нам, как вы открываете 'Form2' из' Form1'. –

+0

Я просто использую Form2 newFrm = new Form2(); newFrm.Show(); чтобы открыть его. – user2022185

ответ

4

Если пользователю не нужно взаимодействовать с Form1, тогда как Form2 открыто, тогда отобразите вторую форму как модальное диалоговое окно, которое прекратит выполнение кода в первой форме и просто обновит вашу сетку после отображения второй форма.

using (var newFrm = new Form2()) 
{ 
    newFrm.ShowDialog(); // execution of Form1 stops until Form2 is closed 
} 

// read the file and update the DataGridView (this line executes when Form2 is closed) 

В качестве альтернативы, вы можете подписаться на Closed событие Form2 для выполнения кода, когда оно закрыто: событие

var newFrm = new Form2(); 
newFrm.Closed += delegate 
    { 
     // read from file and update DataGridView 
    }; 
newFrm.Show(); 
+0

Благодарим вас, спасибо! Арг, я не могу поверить, что не нашел ничего о модальном диалоге, когда искал, он делает все так просто! Моя программа прекрасно работает сейчас! – user2022185

+0

Рад слышать. Пожалуйста. :) –

Смежные вопросы