从另一个表单上的表单关闭事件更新表单

本文关键字:表单 事件 更新 另一个 | 更新日期: 2023-09-27 17:56:25

我正在尝试更新"总机"上的数据网格视图以解决并发问题。 总机有许多复选框,可以在完成某些过程时进行检查。 当我单击已编辑记录上的复选框时,我收到并发错误,因为 dgv 不是最新的。

我尝试这样做:

关闭子窗体时如何刷新数据网格视图?

无济于事,因为它在我的整个项目中引发了其他错误。

关于如何在另一个表单的表单关闭上在我的总机上刷新我的数据网格视图的任何帮助都会很棒。

谢谢

public partial class frmSwitch : Form 
{
    public frmSwitch() 
    {
        //'add a label and a buttom to form
        InitializeComponent();
    }

    public void PerformRefresh() 
    {
        this.propertyInformationBindingSource.EndEdit();
         this.propertyInformationTableAdapter.Fill(this.newCityCollectionDataSet.PropertyInformation);
        this.propertyInformationDataGridView.Refresh()      }
}
public partial class frmSummary : Form
{
    frmSwitch _owner;
    public frmSummary(frmSwitch owner)
    //public frmSummary()
    {
        InitializeComponent();
            _owner = owner;
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSummary_FormClosing);
        }
        private void frmSummary_FormClosing(object sender, FormClosingEventArgs e)
        {
           _owner.PerformRefresh();
        }

这就是我尝试做的,但是当我需要打开 Form2 时,它在其他情况下引起了问题。 该问题具体发生在表格 2 的原始开头,如下所示:

private void propertyInformationDataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    System.Data.DataRowView SelectedRowView;
    newCityCollectionDataSet.PropertyInformationRow SelectedRow;
    SelectedRowView = (System.Data.DataRowView)propertyInformationBindingSource.Current;
    SelectedRow = (newCityCollectionDataSet.PropertyInformationRow)SelectedRowView.Row;
    frmSummary SummaryForm = new frmSummary();
    SummaryForm.LoadCaseNumberKey(SelectedRow.CaseNumberKey, true, null);
    SummaryForm.Show();

}

从另一个表单上的表单关闭事件更新表单

听起来您正在尝试创建交换机表单的新实例,而不是修改表单的现有实例。 当您从总机打开表单时,我建议将实例引用传递给总机表单。 然后,当您关闭打开的窗体时,在form_closing事件中,您将传递的实例称为要更新的切换面板窗体。

此方法和其他方法在本文中指定:

http://colinmackay.co.uk/blog/2005/04/22/passing-values-between-forms-in-net/