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();
}
}
}
代码如下:
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();
}
}
}
展开全部
创建子窗体时,将父窗体作为参数传给子窗体,并在子窗体中使用全局变量保存,
当子窗体关闭事件中调用父窗体的对外(public)方法,
这个方法就可以执行刷新父窗体代码,当然也可以进行其他操作
当子窗体关闭事件中调用父窗体的对外(public)方法,
这个方法就可以执行刷新父窗体代码,当然也可以进行其他操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以下是在CSDN上看到的:
//你在主窗体调用子窗体事件里面写:
子窗体f = new 子窗体();
f.Owner = this;
f.ShowDialog();
if (f.DialogResult == DialogResult.OK)
{
//子窗体上面点击确定按钮想执行的内容,这里添加内容后可以重新绑定,如果datagridview是bingsource绑定的话,直接把数据源给bingsource即可
}
//在子窗体窗体加载事件里面写:
确定按钮.DialogResult = DialogResult.OK;
取消按钮.DialogResult = DialogResult.Cancel;
//你在主窗体调用子窗体事件里面写:
子窗体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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
提供2个思路:
1、把主窗体作为一个变量传递到子窗体,把子窗体中需要刷新的主窗体的控件和变量设置为public,在子窗体的关闭事件(FormClosing)事件中写刷新主窗体的代码;
2、在子窗体中添加一个委托public void delegate Fresh();添加 public event Fresh FreshMain() (公开事件),在子窗体的关闭事件(FormClosing)中添加代码
if(this.FreshMain != null)
FreshMain ();
然后在主窗体中初始化该子窗体的时候添加事件处理代码就可以了。
1、把主窗体作为一个变量传递到子窗体,把子窗体中需要刷新的主窗体的控件和变量设置为public,在子窗体的关闭事件(FormClosing)事件中写刷新主窗体的代码;
2、在子窗体中添加一个委托public void delegate Fresh();添加 public event Fresh FreshMain() (公开事件),在子窗体的关闭事件(FormClosing)中添加代码
if(this.FreshMain != null)
FreshMain ();
然后在主窗体中初始化该子窗体的时候添加事件处理代码就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果类似这种登录窗口后近路主界面,在点击登录事件添加,this.close,然后在主窗口事件中添加: Login a = new Login();//Login为登录窗体名
a.MdiParent = this.MdiParent;
//a.WindowState = FormWindowState.Maximized;
a.ShowDialog(); 就可
a.MdiParent = this.MdiParent;
//a.WindowState = FormWindowState.Maximized;
a.ShowDialog(); 就可
追问
现在做的没有登录窗口,就是主窗口和子窗口,名为mainpage,userdetail,用的是servicelight,具体的刷新事件怎么实现
追答
servicelight??不好意思,没接触过?是什么能说下吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询