无法从其他表单更新数据网格视图

本文关键字:数据 数据网 网格 视图 更新 表单 其他 | 更新日期: 2023-09-27 18:08:38

这就是我想要做的。面板中有一个数据网格视图,该面板位于选项卡控件中的选项卡Page中,该选项卡控件位于Form1中。

   Form1 --> TabControl  --> tabPage  --> panel  --> **DATAGRIDVIEW**

在我的主窗体中,我调用Form2,如Form2.Show((,用户将在其中输入一些内容,然后如果用户单击按钮,比如"保存更改",Form2将关闭,在Form1中,我希望更新数据网格。当用户单击Form2"保存更改"中的按钮时。这是代码:

形式1:

private void btnEditItem_Click(object sender, EventArgs e)
{
    Form3 form3 = new Form3();
    Form1 frm = this.MdiParent as Form1;
    form3.Show();
    this.Hide();  
}

第二种形式:

private void flatButton1_Click(object sender, EventArgs e)
{
    DialogResult dr = MessageBox.Show("Save Changes?", "Confirmation", MessageBoxButtons.YesNo);
    if (dr == DialogResult.Yes)
    {
        Form form1 = (Form)this.MdiParent;
        DataGridView dt = (DataGridView)form1.Controls["flatTabControl1"].Controls["tabPage5"].Controls["panelUpdateRequest"].Controls["dataGridRequestItemsUpdate"];
        dt.Rows[0].Cells[0].Value = "Plsss";**
        this.Hide();
        form1.Show();
    }
}

错误:

Datagridview dt = (DataGridView)..Null Reference Exception.

无法从其他表单更新数据网格视图

Form form1 = (Form)this.MdiParent;

这是你的中三,而不是中一。你需要一份表格1的参考资料。

在中二,你需要这样的东西:

public From3(Form1 form)
{
 // save the reference of the form 1 in form 3 to use it
}

然后你可以用这个从表格1中调用它:

form3.show(this);

希望它能帮助你

用第一种形式定义一个函数:

public DataGridView GetDataGridView()
{
    return this.dataGridRequestItemsUpdate;
}

并以第二种形式检索:

Form form1 = (Form)this.MdiParent;
var dataGridView = form1.GetDataGridView();