VS2010 中关闭子窗体刷新父窗体怎么实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2010 中关闭子窗体刷新父窗体怎么实现相关的知识,希望对你有一定的参考价值。
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();
参考技术A 创建子窗体时,将父窗体作为参数传给子窗体,并在子窗体中使用全局变量保存,
当子窗体关闭事件中调用父窗体的对外(public)方法,
这个方法就可以执行刷新父窗体代码,当然也可以进行其他操作 参考技术B 以下是在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
参考技术C 提供2个思路:1、把主窗体作为一个变量传递到子窗体,把子窗体中需要刷新的主窗体的控件和变量设置为public,在子窗体的关闭事件(FormClosing)事件中写刷新主窗体的代码;
2、在子窗体中添加一个委托public void delegate Fresh();添加 public event Fresh FreshMain() (公开事件),在子窗体的关闭事件(FormClosing)中添加代码
if(this.FreshMain != null)
FreshMain ();
然后在主窗体中初始化该子窗体的时候添加事件处理代码就可以了。 参考技术D 如果类似这种登录窗口后近路主界面,在点击登录事件添加,this.close,然后在主窗口事件中添加: Login a = new Login();//Login为登录窗体名
a.MdiParent = this.MdiParent;
//a.WindowState = FormWindowState.Maximized;
a.ShowDialog(); 就可追问
现在做的没有登录窗口,就是主窗口和子窗口,名为mainpage,userdetail,用的是servicelight,具体的刷新事件怎么实现
追答servicelight??不好意思,没接触过?是什么能说下吗?
php 窗体关闭以后怎样自动刷新父页面
你说的是弹出框吧,给关闭设置一个动作,用JS去reload一些父窗口就好了。 参考技术A 请用js,你的动作是浏览器,跟php无关~请baidu一下:js关闭窗口刷新父窗口
以上是关于VS2010 中关闭子窗体刷新父窗体怎么实现的主要内容,如果未能解决你的问题,请参考以下文章
在 Xamarin 中关闭子窗体后触发 Main Page 的功能