无法从其他表单更新数据网格视图
本文关键字:数据 数据网 网格 视图 更新 表单 其他 | 更新日期: 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();