У нас есть форма под названием 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
обновляется?
Спасибо.
Вы можете вызвать событие в пользовательском элементе управления и подписаться на него в основной форме и загрузки данных там. Также вы можете переносить ссылку формы в пользовательский элемент управления, а затем в свою дочернюю форму и вызывать метод загрузки данных. Это зависит от деталей реализации пользовательского управления и того, как вы показываете его в ячейках. –