如何在winform中子窗体提交数据后刷新父窗体中的DataGRIDVIEW数据?

photojjc 2010-07-09 11:42:58
我在子窗体写了
private void Btc_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}

在父窗体写

private void OrgDgv_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{

PerInfoForm PerInfoForm = new PerInfoForm();

if (OrgDgv.SelectedRows.Count != 0)
{
string ryid = OrgDgv.SelectedRows[0].Cells[0].Value.ToString();
string jgid = OrgDgv.SelectedRows[0].Cells[1].Value.ToString();
PerInfoForm.setryid(ryid,jgid,"2");
PerInfoForm.ShowDialog();
if (PerInfoForm.ShowDialog() == DialogResult.OK)
{
string sqlstr = "select * from PER_INFO where ORG_ID like '" + tvorg.SelectedNode.Tag.ToString() + "%'";
tmpdt = Getdt(sqlstr);
navigator1.DataBanding();
jgid = tvorg.SelectedNode.Tag.ToString();
PerInfoForm.setjgid(jgid, "1");

}
PerInfoForm.Dispose();
}
else
{
return;
}


}

那为什么我要点两次退出才能关闭子窗口呢?
这段话不该写在这吗?

if (PerInfoForm.ShowDialog() == DialogResult.OK)
{
string sqlstr = "select * from PER_INFO where ORG_ID like '" + tvorg.SelectedNode.Tag.ToString() + "%'";
tmpdt = Getdt(sqlstr);
navigator1.DataBanding();
jgid = tvorg.SelectedNode.Tag.ToString();
PerInfoForm.setjgid(jgid, "1");

}

...全文
374 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
小布叮 2011-08-06
  • 打赏
  • 举报
回复
到最后都没看到刷新父窗体中的DataGRIDVIEW数据的代码。。。
an_ding 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dancingbit 的回复:]

PerInfoForm.ShowDialog();
if (PerInfoForm.ShowDialog() == DialogResult.OK)
-------------------------------------------
调用了两次
[/Quote]

1楼正解
小夏天~ 2010-07-09
  • 打赏
  • 举报
回复
同上

调用了两次
zzyhuian06142 2010-07-09
  • 打赏
  • 举报
回复
第一次
PerInfoForm.ShowDialog();
第二次
PerInfoForm.ShowDialog() == DialogResult.OK
dancingbit 2010-07-09
  • 打赏
  • 举报
回复
PerInfoForm.ShowDialog();
if (PerInfoForm.ShowDialog() == DialogResult.OK)
-------------------------------------------
调用了两次
ztlover 2010-07-09
  • 打赏
  • 举报
回复

private void OrgDgv_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{

PerInfoForm PerInfoForm = new PerInfoForm();

if (OrgDgv.SelectedRows.Count != 0)
{
string ryid = OrgDgv.SelectedRows[0].Cells[0].Value.ToString();
string jgid = OrgDgv.SelectedRows[0].Cells[1].Value.ToString();
PerInfoForm.setryid(ryid,jgid,"2");
DialogResult dResult = PerInfoForm.ShowDialog();
if (dResult == DialogResult.OK)
{
string sqlstr = "select * from PER_INFO where ORG_ID like '" + tvorg.SelectedNode.Tag.ToString() + "%'";
tmpdt = Getdt(sqlstr);
navigator1.DataBanding();
jgid = tvorg.SelectedNode.Tag.ToString();
PerInfoForm.setjgid(jgid, "1");

}
PerInfoForm.Dispose();
}
else
{
return;
}


}

jycrystal2002 2010-07-09
  • 打赏
  • 举报
回复
好多问这个问题的啊,解决办法也好多,就这2天都有3个问这个问题的帖子了。
委托,传窗体,还有设置子窗体属性判断刷新。。。
houyizhinv 2010-07-09
  • 打赏
  • 举报
回复

private void OrgDgv_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{

PerInfoForm PerInfoForm = new PerInfoForm();

if (OrgDgv.SelectedRows.Count != 0)
{
string ryid = OrgDgv.SelectedRows[0].Cells[0].Value.ToString();
string jgid = OrgDgv.SelectedRows[0].Cells[1].Value.ToString();
PerInfoForm.setryid(ryid,jgid,"2");
//PerInfoForm.ShowDialog();
if (PerInfoForm.ShowDialog() == DialogResult.OK)
{
string sqlstr = "select * from PER_INFO where ORG_ID like '" + tvorg.SelectedNode.Tag.ToString() + "%'";
tmpdt = Getdt(sqlstr);
navigator1.DataBanding();
jgid = tvorg.SelectedNode.Tag.ToString();
PerInfoForm.setjgid(jgid, "1");

}
PerInfoForm.Dispose();
}
else
{
return;
}


}
houyizhinv 2010-07-09
  • 打赏
  • 举报
回复
private void OrgDgv_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{

PerInfoForm PerInfoForm = new PerInfoForm();

if (OrgDgv.SelectedRows.Count != 0)
{
string ryid = OrgDgv.SelectedRows[0].Cells[0].Value.ToString();
string jgid = OrgDgv.SelectedRows[0].Cells[1].Value.ToString();
PerInfoForm.setryid(ryid,jgid,"2");
//PerInfoForm.ShowDialog(); if (PerInfoForm.ShowDialog() == DialogResult.OK)
{
string sqlstr = "select * from PER_INFO where ORG_ID like '" + tvorg.SelectedNode.Tag.ToString() + "%'";
tmpdt = Getdt(sqlstr);
navigator1.DataBanding();
jgid = tvorg.SelectedNode.Tag.ToString();
PerInfoForm.setjgid(jgid, "1");

}
PerInfoForm.Dispose();
}
else
{
return;
}


}

试试
liherun 2010-07-09
  • 打赏
  • 举报
回复
重新查询
  • 打赏
  • 举报
回复
刷新的问题,在父窗口写一个public函数刷新DGV的数据,然后传递父窗口对象引用到子窗口实例中,至于怎么传,你可以通过构造函数或者父窗口调用子窗口对象某个函数传递都可以,然后再子窗口对应事件函数中处理调用父窗口对象的刷新GDV函数,完毕

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧