【发布时间】:2018-01-16 23:48:27
【问题描述】:
我正在使用父表单将我的其他表单显示为 MdiChild 表单,如下所示:
If ActiveMdiChild IsNot Form4 Then
ActiveMdiChild.Close()
Form4.MdiParent = Me
Form4.Dock = DockStyle.Fill
Form4.AutoScroll = False
Form4.Show()
End If
我的一个表单(TimerForm)有一个计时器,但是当我在另一个表单(Form4)中放置一个断点并按照代码进行调试完成之前,它会转到关闭的 TimerForm 中的 timer1_event。
我在 TimerForm 上试过这个:
Private Sub TimerForm_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Timer1.Enabled = False
Timer1.Stop()
Timer1.Dispose()
End Sub
我也尝试了ActiveMdiChild.Dispose(),但没有成功。
表单关闭后如何阻止定时器触发? 谢谢。
【问题讨论】:
-
您可以从使用显式表单实例开始。表单是类,因此创建了它们的实例
frm = New Form4()。 -
谢谢,我用它来显示两个表单,但计时器事件仍在触发。
-
这只是线程调试器计时问题吗?您是否可以使用日志记录而不是调试来测试一次,以查看计时器在关闭后是否仍在触发而没有附加调试器?
-
很奇怪,也许你在代码的某个地方再次初始化了计时器?
-
这个c#但我相信你可以稍微理解代码并搜索一下来实现它。查看最后一个答案,否则您可能有第一个答案的原因。 stackoverflow.com/questions/1526598/…