C# winform 关闭窗体后在打开 如何让打开的窗体还是原窗体 且打开的窗体还是原状态

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform 关闭窗体后在打开 如何让打开的窗体还是原窗体 且打开的窗体还是原状态相关的知识,希望对你有一定的参考价值。

问题如题啊 求解决办法 谢谢

假设在窗口form1中打开form2.


在form1中保留form2的引用

private Form2 form2 = new Form2();
        private void button1_Click(object sender, EventArgs e)
        
            form2.Show();
        


form2中添加windowsClosing事件,里面这样写:

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        
            e.Cancel = true;
            this.Visible = false;
        
参考技术A 可以用Xml保存上一次打开的窗体各属性的值,下次打开的时候再从xml中读取并赋值就可以了。 参考技术B 你关闭的时候,隐藏,在打开的时候,显示就OK了。

c#如何实现关闭当前窗体并打开另一个已经创建的窗体。

1.在winform项目中,右键单击-添加-新项目-windows窗体-windows窗体。

2.将一个按钮拖到Form1中,并更改Text属性以弹出表单。

3.双击按钮进入编码界面。

4.编写代码“Form2Form2=newForm2;Form2。ShowDialog();“.

5.点击开始按钮或按F5运行程序。

6.单击弹出式表单按钮后,将弹出一个新表单。

参考技术A 不能关的,你正在启动的这个窗体已经是主线程了,如果你把它关了,你就等于是把主线程关了,其他的画面就算是起来了,你也看不到,马上就被关闭了。如果你想要做到你说的效果,那就只能这么做:Form2 form2 = new Form2();
form2.ShowDialog(this);//这里一定要用ShowDialog,否则画面程序依旧会结束。
this.Close();//关闭Form2后,程序退出
然后在Form2的Load事件里写上:
this.Owner.Hide();//隐藏Form1
只有这么做,才能达到你的目的。本回答被提问者采纳
参考技术B 其实可以试着把当前窗体隐藏掉,然后打开已经创建的窗体。如果非得要关闭的话,用线程打开新窗体。 参考技术C form2为第二个窗体。

在第一个窗体里写。
Form2 f=new Form2 ();
f.ShowDialog();
this.Close();
参考技术D this.Close();
Form2 fm=new Form2();
fm.Show();追问

这不是我想要的,你的回答百度上已经有了,我也已经试过了,行不通。

追答

关闭窗体 打开新窗体 不就是这样的么 你啥问题

以上是关于C# winform 关闭窗体后在打开 如何让打开的窗体还是原窗体 且打开的窗体还是原状态的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 如何设置让窗体尽在第一次启动时运行?

winform中一个窗口关闭后在主窗口上自动刷新显示的数据。谢谢

c#如何实现关闭当前窗体并打开另一个已经创建的窗体。

C#开发的winform程序,窗体打开的速度很慢,请高手指点。。谢了先。。。

c# winform程序,判断是不是打开同一个窗口的问题。

如何在winform按钮事件中用线程打开一个窗口,最后在finally中给隐藏和关闭,也就是做简单的等待窗口效果