表单关闭后保持子运行

时间:2012-12-06 19:48:02

标签: .net vb.net

我在名为“sys”的类中有一个名为notify的子。我使用此子作为通知表格作为notifyicon / balloontip的替代。

所以它看起来像这样...

sys.notify("message")

我的问题是我需要能够显示通知并在不久之后关闭表单。我现在的方式是,当通知仍处于活动状态时表单关闭,通知被切断。

即使在调用它的表单关闭后,还是有任何方法可以保持它,或者我必须等到通知完成才能关闭表单吗?

2 个答案:

答案 0 :(得分:0)

有可能。

1)通知部分:将其编码在不同的线程中,因此即使主表单关闭也不会关闭。

2)更简单的方法:在主窗体关闭事件中,检查是否显示通知部分或主窗体是否不可见,如果不是,则关闭窗体。如果是,则隐藏表单(不可见),并中止结束事件。在通知部分,当关闭通知本身时,检查主表单是否不可见,如果是,则关闭它,然后关闭通知。

2)中的关键是使主要形式隐身而不是关闭。

答案 1 :(得分:0)

关键是启动一个不是后台的线程。因此,您的表单将被关闭,但该过程将继续运行,直到完成非后台线程,从而保持您的ballontip可见。

到要显示baloontip的地方(子或功能)放这个:

Dim x As New Threading.Thread(AddressOf somesub)
x.IsBackground = False
x.Start()

把它放在某个地方:

Private Sub somesub()
        sys.notify("message")
End Sub