如何自动关闭对话框?

时间:2016-04-27 13:23:37

标签: vb.net winforms dialog

我有一个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

2 个答案:

答案 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

当推荐表格关闭时,子表单也会关闭。