在窗口关闭时运行窗体窗体线程

在窗口关闭时运行窗体窗体线程

问题描述:

我有一个windows窗体运行一个线程,它读取一个字符串并在文本框中显示它。在窗口关闭时运行窗体窗体线程

它具有启动停止按钮,用于在窗口Main_Form内的文本框中开始显示文字。

现在,我需要创建一个处理启动停止的开放表单。当你按下启动同样的事情应该发生,但Main_Form可以被关闭

你有一个按钮,打开Main_Form,看到文本框更改

它只能当我键入:

m_mf = new Main_Form(); 
m_mf.Show(); 
m_mf.start(); 

如果键入

m_mf.Visible = false; 

或关闭主窗体窗口中的程序会杀死自己

+1

设置'Visible'不应导致程序关闭,除非你想从一个新的线程内做到这一点(在这种情况下,你会得到一个例外)。你是? – Jon 2013-02-13 10:15:19

+0

你好,我不想关闭程序。我想让'Main_Form'中的线程运行,但窗口显示与否。我在'Main_Form'的'Opening_Form'节目中有一个按钮。 – 2013-02-13 10:23:55

+0

这就是我所说的。 **'Visible = false'也不会关闭程序。**如果程序关闭,那是因为**你在某个地方有一个错误**。这个错误可能是你正在从另一个线程设置'Visible'。 – Jon 2013-02-13 10:25:34

您是否尝试过使用隐藏(),而不是可见=假:

m_mf.Hide(); 

如果使用m_mf.Close();将完全关闭程序。

This article可能会帮助你一点。

+0

'Hide()'与设置'Visible = false'完全相同。它位于[documentation](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.hide.aspx)中:*“隐藏控件等同于将Visible属性设置为false “* – Jon 2013-02-13 10:16:28

+0

其实m_mf.hide()的作品!但有没有办法让它工作而不显示窗口弹出? – 2013-02-13 10:18:56

+1

也许这有帮助吗? http://*.com/questions/1730731/how-to-start-winform-app-minimized-to-tray – 2013-02-13 11:15:00

你的意思是运行新的形式后m_mf接近,在你的主要功能可以按如下修改:

Application.Run(new m_mf()); 
Application.Run(new Form1()); 
+0

嗨,我不想运行2个程序,我想运行只运行程序。在program.cs中,我想让它保留'Application.Run(new Opening_Form());',并且在'Opening_Form'中按下start来让'Main_Form'线程运行 – 2013-02-13 10:31:39