winform如何关闭窗口

时间:2022-06-12 14:39:48
单击一个菜单项,以ShowDialog()方法弹出对话框。想在完成在该对话框中的操作把它关闭,应调用什么方法呢?用close、dispose把整个程序关了,用hide()隐藏,程序关闭窗口还在,结束不了。。。怎么办,高手请帮忙。

18 个解决方案

#1


this.Close();  //在弹出的对话框中写.不是在主界面写

#2


想在完成在该对话框中的操作把它关闭
===================
LZ难道不知道ShowDialog返回的条件就是关闭所弹出的对话框?从其他地方关闭自然是做不到的。

#3


this.Close();  //在弹出的对话框中写.不是在主界面写

或者在主程序中写:

对话框对象.close();

#4


this.visable=fales;
frm.ShowDialog();
this.visable=true;

#5


这些方法试过,this.close()关的就是整个程序。
所有尝试都是在这个窗口试的,就是没有成功。
4楼这种方法把主窗口关闭了还有进程在执行.
不知道什么原因。。。。

#6


            if (MessageBox.Show("关闭", "提示", MessageBoxButtons.YesNo) = DialogResult.Yes)
            {
                 this.close();
            }

#7


该回复于2008-06-30 14:59:49被版主删除

#8


在使用.close时,窗体不能在这之前转到其它窗体,
如果使用.Hide,如:

  this.Hide ();
  FrmMain.Show();

#9


引用 5 楼 ffms_lin 的回复:
这些方法试过,this.close()关的就是整个程序。 
所有尝试都是在这个窗口试的,就是没有成功。 
4楼这种方法把主窗口关闭了还有进程在执行. 
不知道什么原因。。。。

第一个启动窗口是主进程,不能close的。
如果想在打开窗口结束程序就用:
Application.Exit();

#10


主窗口关闭了还有进程在执行. 
是不是因为在你的程序里还有线程没执行完的?

我觉得关闭一个模式对话框最好是给它的DialogResult属性赋值,这样父窗口还可以根据这个属性判断要做什么。

#11


刚又试了下,this.close()可以用了,怎么回事。。。
不过程序关了后,还是有进程在运行,怎么回事呢。。。

#12


程序的本意是在showdialo*生的窗口,以取消按钮返回主窗口。

#13


用this.close()关闭showdialo*生的窗口,
在主程序内用Appliction.Exit()关闭来结束进程

#14


把Dialog窗口的取消按钮的DialogResult属性设为Cancel;
确定按钮的DialogResult属性设为Ok.

就OK了!

#15


不过这样返回主窗口后,Dialog窗口并没有从内存中清除。
所以 通常在这时候把Dialog窗口的一些返回值取出来,然后再用
DialogWindow.Close() 或者 DialogWindow.Dispose()把Dialog窗体释放掉。

#16


this.Close();
或者
Application.Exit();

#17


该回复于2008-03-23 09:20:40被版主删除

#18


看来只有这样了。。分不多。。大家原谅啊。。呵呵

#1


this.Close();  //在弹出的对话框中写.不是在主界面写

#2


想在完成在该对话框中的操作把它关闭
===================
LZ难道不知道ShowDialog返回的条件就是关闭所弹出的对话框?从其他地方关闭自然是做不到的。

#3


this.Close();  //在弹出的对话框中写.不是在主界面写

或者在主程序中写:

对话框对象.close();

#4


this.visable=fales;
frm.ShowDialog();
this.visable=true;

#5


这些方法试过,this.close()关的就是整个程序。
所有尝试都是在这个窗口试的,就是没有成功。
4楼这种方法把主窗口关闭了还有进程在执行.
不知道什么原因。。。。

#6


            if (MessageBox.Show("关闭", "提示", MessageBoxButtons.YesNo) = DialogResult.Yes)
            {
                 this.close();
            }

#7


该回复于2008-06-30 14:59:49被版主删除

#8


在使用.close时,窗体不能在这之前转到其它窗体,
如果使用.Hide,如:

  this.Hide ();
  FrmMain.Show();

#9


引用 5 楼 ffms_lin 的回复:
这些方法试过,this.close()关的就是整个程序。 
所有尝试都是在这个窗口试的,就是没有成功。 
4楼这种方法把主窗口关闭了还有进程在执行. 
不知道什么原因。。。。

第一个启动窗口是主进程,不能close的。
如果想在打开窗口结束程序就用:
Application.Exit();

#10


主窗口关闭了还有进程在执行. 
是不是因为在你的程序里还有线程没执行完的?

我觉得关闭一个模式对话框最好是给它的DialogResult属性赋值,这样父窗口还可以根据这个属性判断要做什么。

#11


刚又试了下,this.close()可以用了,怎么回事。。。
不过程序关了后,还是有进程在运行,怎么回事呢。。。

#12


程序的本意是在showdialo*生的窗口,以取消按钮返回主窗口。

#13


用this.close()关闭showdialo*生的窗口,
在主程序内用Appliction.Exit()关闭来结束进程

#14


把Dialog窗口的取消按钮的DialogResult属性设为Cancel;
确定按钮的DialogResult属性设为Ok.

就OK了!

#15


不过这样返回主窗口后,Dialog窗口并没有从内存中清除。
所以 通常在这时候把Dialog窗口的一些返回值取出来,然后再用
DialogWindow.Close() 或者 DialogWindow.Dispose()把Dialog窗体释放掉。

#16


this.Close();
或者
Application.Exit();

#17


该回复于2008-03-23 09:20:40被版主删除

#18


看来只有这样了。。分不多。。大家原谅啊。。呵呵