2017-01-19 2 views
0

Здравствуйте, я form1 и form2WinForm - обновить другую форму при обновлении исходных

private void form1_Load(object sender, EventArgs e) 
{ 
//codes to display db 
} 

то я использую form2.ShowDialog();, чтобы открыть форму, потому что я не хочу несколько окон

то в моем form2 я есть чтобы удалить что-то, поэтому form1 должен обновить дисплей.

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
//codes to delete 
    form2_Load(sender, e); //so the form2 will reload 
} 

Сначала я должен открыть первый form1, прежде чем я могу открыть form2. Как я могу обновить/обновить form1, пока все еще в форме2? EDIT:
Единственное, что я хочу, чтобы освежить в form1 является dataGridView

+0

Возможный дубликат [обновить DataGridView из другой формы] (http://stackoverflow.com/questions/27000463/refresh-a-datagridview-from-another-form) – active92

+0

ли form2 может быть открыт без открытия Form1 –

+0

btw, не вызывайте обработчик событий, например 'form2_Load (отправитель, e)' напрямую. Вы должны написать эти вещи в функции и вызвать эту функцию в 'form2_Load' и' dataGridView1_CellContentClick' –

ответ

-1

Этот вопрос зависит от ли form2 знать, как получить доступ form1?

Если это так, вы можете позвонить form1.Refresh() (или какой-либо другой общедоступный метод), чтобы запросить form1 обновить список. (Из-за этого вам необходимо переопределить метод Refresh или создать собственный публичный метод).

Если нет, возможно, вы можете рассмотреть возможность использования Singleton pattern on your form1.

-

Кроме того, если form2 всегда создается с помощью form1, вы можете рассмотреть, чтобы открыть form2 как это (надо писать в form1)

Form2 form2 = new Form2(); 
form2.Open(this); 
//-- or 
form2.OpenDialog(this); 

Если да, то вы можете получить доступ к form1 в form2 по вызывающий this.Parent.

+0

Это не отвечает на вопрос. Если вам все еще нужно задавать вопросы, используйте комментарии. –

+0

@LucMorin У меня есть обновленный ответ, и я думаю, что эта проблема может быть решена с помощью шаблона Singleton ... –

0

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

+0

Моя 'form1' просто используется для запросов, а' form2' - больше по техническим вопросам. Поэтому я думаю, что нормально обновлять/обновлять дисплей – Fiendcoder1

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