关于C#重新加载父窗体的问题. 如题,困扰我很久的问题,比如我在MDI的子窗体中做一个按钮,运行后点这个按钮后"父窗体"重新加载一次,注:在操作过程中不打开关闭窗口,就像网页中的刷新整页一样,这个功能怎么实现?用this.Refresh();试过了不管用.貌似只是刷新了窗体中的控件,关没有达到窗体重新加载的目地,有没有其他办法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 所谓的重新加载应是指加载你所指定的所有内容,而不应只是让窗口重新绘制,所以你应该写一个方法来加载你的所有设置,每当窗体Load的时候或需要加载的都调用这个方法.调用的时候先清空原来的设置(比如原来加载的控件或窗体)再加新的内容. 你要是重新绘制吧?试试下面函数this.Invalidate()this.InvokePaint()如果要求像网页那样刷新一次全部对像还原为默认值this.Controls.Clear(); //删除所有控件this.InitializeComponent();//InitializeComponent().net自动为你准备的this.OnLoad(e); //调用一下onload 可产生一次load事件 举个例子比如我现在写一个用户登陆和退出登陆,父窗体中的代码如下:public static bool session=false;public Main() { if(session==false){ //在没有登陆时默认显示的"子窗体form1" form1 fm1=new form1; fm1.Mdiparent=this(); fm1.show(); }elseif(session==true){ form2 fm2=new form2; fm2.Mdiparent=this(); fm2.show(); //当session为true时登陆成功.这里显示登陆成功后的内容 } }private void button1_Click(object sender, EventArgs e) { //这里是退出登陆的按钮CLICK事件代码. session=false; messagebox.show("已经退出了登陆,需要再次显示子窗体form1.") //问题就是这,退出登陆后把session的值改写成了false,父窗体中应该继续显示form1,而实际却还是显示的form2,怎么解决? } VS08 c#更新access数据库 update更新不了数据~是权限问题吗 dataGridView1 连续删除数据会出错? 用SQL语句写一个触发器 如何在一圆柱体上填写环绕文字??? 关于继承和事件触发的问题 ListBox控件的用法,我有点乱 关于ASCII大于127的字符处理的问题 [WinForm]用户控件的click事件 100分请高手解决一下简单移植问题 关于如何C#使控制台的输出结果复制到记事本中 小问题,谁来帮一下我?看内容就知道问题在哪了.送分了~ 请问如何将一组JPG图像文件转成AVI视频?谢谢
this.Invalidate()
this.InvokePaint()
如果要求像网页那样刷新一次全部对像还原为默认值
this.Controls.Clear(); //删除所有控件
this.InitializeComponent();//InitializeComponent().net自动为你准备的
this.OnLoad(e); //调用一下onload 可产生一次load事件
public static bool session=false;
public Main()
{
if(session==false){
//在没有登陆时默认显示的"子窗体form1"
form1 fm1=new form1;
fm1.Mdiparent=this();
fm1.show(); }elseif(session==true){
form2 fm2=new form2;
fm2.Mdiparent=this();
fm2.show();
//当session为true时登陆成功.这里显示登陆成功后的内容
}
}private void button1_Click(object sender, EventArgs e)
{
//这里是退出登陆的按钮CLICK事件代码.
session=false;
messagebox.show("已经退出了登陆,需要再次显示子窗体form1.")
//问题就是这,退出登陆后把session的值改写成了false,父窗体中应该继续显示form1,而实际却还是显示的form2,怎么解决?
}