winfrom中在子窗体插入数据后如何同时更新主窗体中datagridview数据?
如图所示,C#中在添加窗体中插入数据后,该子窗体消失,还必须同时更新BCSForm主窗体上的datagridview数据,最后新插入的记录成蓝色显示?求各位高手给予解决,...
如图所示,C#中在添加窗体中插入数据后,该子窗体消失,还必须同时更新BCSForm主窗体上的datagridview数据,最后新插入的记录成蓝色显示?求各位高手给予解决,解决后追加分!谢谢了
请给出代码,谢谢啦! 展开
请给出代码,谢谢啦! 展开
5个回答
2015-08-08 · 知道合伙人互联网行家
关注
展开全部
private void btnYieldRoleNO_Click(object sender, EventArgs e)
{
FromSelectAllYieldRole se = new FromSelectAllYieldRole();//子窗体
se.Owner = this;//子窗体的拥有者父窗体
se.ShowDialog();
// SetValue();
}
//双击选择数据
private void dgvShowAll_DoubleClick(object sender, EventArgs e)
{
try
{
this.Tag = GetDate();
FrmYieldTransitEdit fy = (FrmYieldTransitEdit)this.Owner;//父窗体对象
展开全部
几行代码就可以搞定(看一下能满足您的需要不):
Form2中 也就是子窗体
public delegate void RefreshParentForm(object sender);
public event RefreshParentForm refreshParent;
private void button1_Click(object sender, EventArgs e)
{
//执行你需要的操作,执行成功/失败之后
if (this.refreshParent != null)
{
refreshParent(null);
}
}
Form1中 也就是父窗体
private void button2_Click(object sender, EventArgs e)
{
Form2 oauth = new Form2();
oauth.refreshParent += new Form2.RefreshParentForm(oauth_refreshParent);
oauth.ShowDialog();
}
/// <summary>
/// 要刷新的操作
/// </summary>
/// <param name="sender"></param>
private void oauth_refreshParent(object sender)
{
this.lblTime = DateTime.Now;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在主窗体里面把刷新方法写到一个公有方法里面,初始化子窗口时候申明一下 ,子窗口里面也是 ,之后可以在子窗口里面直接调用该方法就可以刷新了 。举个例子吧
假设父窗口Form1,子窗口Form2,
Form1里面刷新方法
public void dbviewRefresh()
{
///刷新数据表
}
调子窗口的时候这么申明
Form2 f=new Form2();
f.Form1=this;
f.ShowDialog();
然后Form2里面在类的开头申明
public partial class Form2 : Form
{
public Form1 Form1;//申明这个父窗口
。。。。。。
之后在Form2里面要刷新Form1的表 只要调用
Form1.dbviewRefresh();
就可以啦。
假设父窗口Form1,子窗口Form2,
Form1里面刷新方法
public void dbviewRefresh()
{
///刷新数据表
}
调子窗口的时候这么申明
Form2 f=new Form2();
f.Form1=this;
f.ShowDialog();
然后Form2里面在类的开头申明
public partial class Form2 : Form
{
public Form1 Form1;//申明这个父窗口
。。。。。。
之后在Form2里面要刷新Form1的表 只要调用
Form1.dbviewRefresh();
就可以啦。
追问
f.Form1=this,这句对吗?如何理解?还有我试了一下,好像插入数据后,主窗体上的datagridview没有刷新呀,,求解!
追答
这是申明f的父窗体是Form1,和f.preant一样,你插入数据要调用一下父窗体里面的刷新方法才行啊。没刷新就是你刷新方法的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写个刷新代码就可以了撒,设置5秒刷新一次或者10秒,百度刷新datagridview,还有个办法就是判断你插入成功之后updata!希望对你有帮助!!还忙于做项目,不小心看到就帮你解决下。去忙了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你添加的数据时不是保存在数据库中的,如果是的话你在小窗体关闭的时候把后面那个窗体的加载数据方法调用下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询