【发布时间】:2016-05-10 16:58:56
【问题描述】:
我们有一个名为FormParent 的表单和datagridview。 datagridview 中的每个单元格都是UserControl 的一个实例。 FormParent 中有一个方法如下所示:
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 有一个按钮,可以stuff 更新一些数据;在此 button_Click 事件处理程序中,我还希望从 FormParent 刷新(即重新绑定)datagridview。我怎样才能做到这一点?是这样的:
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 */
}
如何从buttonChildForm_Click 调用FormParent 中的RefreshParentFormDatagridview 以刷新datagridview?
谢谢。
【问题讨论】:
-
您可以在用户控件中引发事件并在主窗体中订阅它并在那里加载数据。您还可以将表单的引用传递给用户控件,然后传递给您的子表单,并在那里调用加载数据的方法。这取决于用户控件的实现细节以及如何在单元格中显示它。
标签: c# winforms visual-studio-2010 datagridview