【发布时间】:2016-04-27 13:23:36
【问题描述】:
我有一个 WinForm 应用程序,它会在一段时间后自动注销,用户没有执行任何活动,该应用程序有一些对话框,如
SearchCustomer.ShowDialog()
如果用户打开该对话框并且时间到期,则用户会自动注销,但该对话框仍保持打开状态,因此即使用户已注销,任何人都可以使用该对话框。
有什么方法可以从主窗体关闭这些对话框?
编辑: 以不同的方式打开了另一个对话框
AddCustomer.Show()
AddCustomer.BringToFront()
编辑 2 基于 jmcilhinney 答案的解决方案
For Each openForm In openForms
Dim H1 As Integer = openForm.GetHashCode()
Dim H2 As Integer = Me.GetHashCode()
If H1 <> H2 Then 'No igual
openForm.Close()
End If
Next
【问题讨论】:
-
只是这个对话框还是其他对话框有类似情况?
-
SearchCustomer.Close将关闭该表单 -
@Steve 是的,还有另一个以不同的方式打开,我将代码添加到主要问题中,请重新阅读,谢谢。
-
@MattWilko 我可以从主表单的任何部分执行该指令吗?就我现在而言,可能我错了,主窗体的代码执行在 ShowDialog() 处停止,直到对话框关闭;我错了吗?