2016-05-10 2 views
0

У нас есть форма под названием FormParent с datagridview. Каждая ячейка в datagridview является экземпляром UserControl. Там есть метод FormParent, который выглядит следующим образом:Обновите datagridview в родительской форме от детской формы?

private void RefreshParentFormDatagridview() 
{ 
    DataTable myTable = GetEmployees(); 
    dataGridView1.DataSource = DT; 
} 

Когда я нажимаю на ячейки datagridview, я на самом деле нажав на экземпляр UserControl. Этот щелчок открывает форму под названием FormChild

UserControl нажмите выглядит следующим образом:

private void UserControl_Click(object sender, EventArgs e) 
{ 
    var formChild = new FormChild(); 
    formChild.ShowDialog(); 
} 

FormChild есть кнопка, которая делает вещи обновить некоторые данные; в этом обработчике событий button_Click я также хочу обновить (то есть восстановить) datagridview от FormParent. Как я могу это сделать? Это что-то вроде этого:

private void buttonChildForm_Click(object sender, EventArgs e) 
{ 
    /* Saving stuff to database table */ 

    MessageBox.Show("Stuff saved"); 
    this.buttonSave.Enabled = false; 

    /* run datagridview.datasource to update datagridview in FormParent */ 
} 

Как я могу вызвать RefreshParentFormDatagridview в FormParent из buttonChildForm_Click так что datagridview обновляется?

Спасибо.

+0

Вы можете вызвать событие в пользовательском элементе управления и подписаться на него в основной форме и загрузки данных там. Также вы можете переносить ссылку формы в пользовательский элемент управления, а затем в свою дочернюю форму и вызывать метод загрузки данных. Это зависит от деталей реализации пользовательского управления и того, как вы показываете его в ячейках. –

ответ

0

В итоге я передал ссылку на элемент управления dataGridView1 на мой UC, который затем передал его дочерней форме.

Используется это в качестве ссылки: how to refresh grid on parent form from child form

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