关于c#中close 方法的问题
Form1中的button1利用Form2form2=newForm2();form2.Show();打开了form2然后Form1中的button2中写了如下代码:Fo...
Form 1 中的button1 利用
Form2 form2 = new Form2();
form2.Show();
打开了form2
然后Form1中的button2 中写了如下代码:
Form2 form2 = new Form2();
form2.Close();
请问为什么关闭不了Form2窗体? 展开
Form2 form2 = new Form2();
form2.Show();
打开了form2
然后Form1中的button2 中写了如下代码:
Form2 form2 = new Form2();
form2.Close();
请问为什么关闭不了Form2窗体? 展开
展开全部
在C#里有两种情况下调用 Close 不会释放窗体:
(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;
(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
注意:
在显示为无模式窗口的 Form 上调用 Close 方法时,不能调用 Show 方法使窗体可见,因为窗体的资源已被释放。若要隐藏窗体然后又使其可见,请使用 Control..::.Hide 方法。
警告:
.NET Framework 2.0 之前,当调用 Application..::.Exit 方法以退出应用程序时,不会引发 Form..::.Closed 和 Form..::.Closing 事件。如果在必须执行的其中一个事件中有验证代码,则在调用 Exit 方法之前,应分别为每个打开的窗体调用 Form..::.Close 方法。
以上为 MSDN原文,希望有用
(1) 窗体是多文档界面 (MDI) 应用程序的一部分且是不可见的;
(2) 您是使用 ShowDialog 显示的该窗体。在这些情况下,需要手动调用 Dispose 来将窗体的所有控件都标记为需要进行垃圾回收。
注意:
在显示为无模式窗口的 Form 上调用 Close 方法时,不能调用 Show 方法使窗体可见,因为窗体的资源已被释放。若要隐藏窗体然后又使其可见,请使用 Control..::.Hide 方法。
警告:
.NET Framework 2.0 之前,当调用 Application..::.Exit 方法以退出应用程序时,不会引发 Form..::.Closed 和 Form..::.Closing 事件。如果在必须执行的其中一个事件中有验证代码,则在调用 Exit 方法之前,应分别为每个打开的窗体调用 Form..::.Close 方法。
以上为 MSDN原文,希望有用
展开全部
form2是局部变量,两个button中所指的不是一个,你可以把form2当做类的成员,放在两个Button外面,
像这样:
Form2 form2 ;
Button1_CLICK()
{
...
}
Button2_Click()
{
...
}
这样一定可以
像这样:
Form2 form2 ;
Button1_CLICK()
{
...
}
Button2_Click()
{
...
}
这样一定可以
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在这里创建了两个不同的对象,当然关闭不了了!
试试在Form1的类里(不是button1或button2的方法里)创建Form2的对象
private Form2 form2 = new Form2();
然后再button1,和button2里使用这一个对象名
试试在Form1的类里(不是button1或button2的方法里)创建Form2的对象
private Form2 form2 = new Form2();
然后再button1,和button2里使用这一个对象名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个form2不一样。
你可以把form2定义为一个类成员变量,就可以了。
你可以把form2定义为一个类成员变量,就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this.close()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询