我有一个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
答案 0 :(得分:1)
我还没有接受过测试,但我认为你应该能够沿着这些方向做点什么:
Dim openForms = My.Application.OpenForms.Cast(Of Form)().ToArray()
For Each openForm In openForms
openForm.Close()
Next
答案 1 :(得分:0)
这是一个选项。
使用所有权属性打开您的表单。
AddCustomer.Show(Me)
'This open the form and gives the referring form ownership.
'It Also gives focus to the child form, keeping it on top of the referring form
当推荐表格关闭时,子表单也会关闭。