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();
}
///
/// 要刷新的操作
///
///
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();
就可以啦。
你写个刷新代码就可以了撒,设置5秒刷新一次或者10秒,百度刷新datagridview,还有个办法就是判断你插入成功之后updata!希望对你有帮助!!还忙于做项目,不小心看到就帮你解决下。去忙了。。。
你添加的数据时不是保存在数据库中的,如果是的话你在小窗体关闭的时候把后面那个窗体的加载数据方法调用下。