VS2010 中关闭子窗体刷新父窗体怎么实现

 我来答
飘雨56
推荐于2016-03-19 · 一分耕耘一分收获,凡事预则立
飘雨56
采纳数:931 获赞数:4490

向TA提问 私信TA
展开全部
Form1窗体,添加一个button1跟一个textBox1
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Form2 InputDialog = new Form2(this);
InputDialog.ShowDialog(this);
}

public void refresh()
{
textBox1.Text = "success";
MessageBox.Show("成功在关闭子窗体时更新了父窗体内容!");
}
}
}

Form2构造窗体,设置FormClosing就好了,代码如下:
程序代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}

public Form1 Gz_fm;
public Form2(Form1 t_Form1)
{
InitializeComponent();
Gz_fm = t_Form1;
}

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Gz_fm.refresh();
}
}
}
雨月蓝
2012-02-07 · TA获得超过765个赞
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:253万
展开全部
创建子窗体时,将父窗体作为参数传给子窗体,并在子窗体中使用全局变量保存,
当子窗体关闭事件中调用父窗体的对外(public)方法,
这个方法就可以执行刷新父窗体代码,当然也可以进行其他操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huntagain2008
2012-02-07 · TA获得超过927个赞
知道小有建树答主
回答量:999
采纳率:0%
帮助的人:403万
展开全部
以下是在CSDN上看到的:

//你在主窗体调用子窗体事件里面写:
子窗体f = new 子窗体();
f.Owner = this;
f.ShowDialog();
if (f.DialogResult == DialogResult.OK)
{
//子窗体上面点击确定按钮想执行的内容,这里添加内容后可以重新绑定,如果datagridview是bingsource绑定的话,直接把数据源给bingsource即可
}

//在子窗体窗体加载事件里面写:
确定按钮.DialogResult = DialogResult.OK;
取消按钮.DialogResult = DialogResult.Cancel;
追问
现在做的没有登录窗口,就是主窗口和子窗口,名为mainpage,userdetail,用的是servicelight,具体的刷新事件怎么实现呢
追答
懒得回答~

参考资料: CSDN BBS

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二牛资讯
2012-02-07 · TA获得超过736个赞
知道小有建树答主
回答量:631
采纳率:50%
帮助的人:568万
展开全部
提供2个思路:
1、把主窗体作为一个变量传递到子窗体,把子窗体中需要刷新的主窗体的控件和变量设置为public,在子窗体的关闭事件(FormClosing)事件中写刷新主窗体的代码;
2、在子窗体中添加一个委托public void delegate Fresh();添加 public event Fresh FreshMain() (公开事件),在子窗体的关闭事件(FormClosing)中添加代码
if(this.FreshMain != null)
FreshMain ();
然后在主窗体中初始化该子窗体的时候添加事件处理代码就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sunills
2012-02-08
知道答主
回答量:11
采纳率:0%
帮助的人:1.8万
展开全部
如果类似这种登录窗口后近路主界面,在点击登录事件添加,this.close,然后在主窗口事件中添加: Login a = new Login();//Login为登录窗体名
a.MdiParent = this.MdiParent;
//a.WindowState = FormWindowState.Maximized;
a.ShowDialog(); 就可
追问
现在做的没有登录窗口,就是主窗口和子窗口,名为mainpage,userdetail,用的是servicelight,具体的刷新事件怎么实现
追答
servicelight??不好意思,没接触过?是什么能说下吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式