2011-06-02 58 views
0

经过大量的研究后,我仍然没有接近解决方案。表格关闭X C#

我有一个简单的应用程序,2个窗体.NETv3.5 C#。

应用程序加载第一个窗体,我在窗口栏上按'X'。

应用程序隐藏表单并继续运行而不退出应用程序,即使加载的唯一表单已关闭。

当按下X时,主窗体关闭方法不会被调用,因为按下x时窗体被隐藏。 Form.Deactivated被调用,但不是Form.Closing。

即使当X按下时,我该如何捕捉? (然后我可以实现Application.Exit())

+0

如果您有线程,请设置IsBackground = true;在下摆,所以他们与主窗体关闭 – 2011-06-02 13:03:47

+1

如何隐藏窗体的“X”关闭按钮,当它被隐藏? – 2011-06-02 13:04:00

+2

您能否提供program.cs文件中的代码... – 2011-06-02 13:04:38

回答

1

检查您是否有计时器或正在运行的线程。如果这样就停止这些。

+0

没有定时器或线程 - 应用程序非常简单 – Simon 2011-06-02 14:26:19

0

我想在Program.cs,你打电话Application.Run传递主窗体作为参数。如果是这样,应用程序将不会退出,直到主窗体关闭。
要按下X按钮时捕捉事件,请将事件处理程序添加到中等表单的Closed事件,而不是主窗体的事件。在这种情况下,请拨打主窗体的Close方法(或Application.Exit)。

+0

我想在Program.cs中,您调用Application.Run传递主窗体作为参数。如果是这样,应用程序将不会退出,直到主窗体关闭。 – Simon 2011-06-02 14:24:00

+0

“我想在Program.cs中,你调用Application.Run传递主窗体作为参数,如果是这样,应用程序将不会退出,直到主窗体关闭。 这是正确的Application.Run(new formname()); “要在按下X按钮时捕捉事件,请将事件处理程序添加到辅助窗体的闭合事件中,而不是主窗体,在这种情况下,请调用主窗体的Close方法(或Application.Exit)。 我已经试过了。当我尝试关闭主窗体时,辅助窗体甚至没有实例化。 – Simon 2011-06-02 14:25:51

+0

我们称之为formA和formB。哪个传递给Application.Run?哪个隐藏?你按哪一个X? – 2011-06-02 15:53:40