如何在VB.NET中卸载所有打开的表单?

bra*_*zoo 3 vb.net vb6 vb6-migration visual-studio-2008 winforms

在将VB6代码转换为VB.NET的过程中,我需要替换以下代码,这些代码旨在关闭应用程序中剩余的所有打开的表单.

'close all sub forms
For i = My.Application.OpenForms.Count - 1 To 1 Step -1
    'UPGRADE_ISSUE: Unload Forms() was not upgraded. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="875EBAD7-D704-4539-9969-BC7DBDAA62A2"'
    Unload(My.Application.OpenForms(i))
Next i
Run Code Online (Sandbox Code Playgroud)

UnloadClose(用TFM表示)替换了函数,但是编译器抱怨它OpenForms不是.的成员My.Application.

我在哪里可以访问开放表格?

Cer*_*rus 11

OpenForms物业返回一个FormCollection.您可以遍历集合来处理所有表单.

For each f as Form in My.Application.OpenForms
 f.Close()
Next
Run Code Online (Sandbox Code Playgroud)


bra*_*zoo 7

我发现了这个解决方案,

'close all sub forms
For i = System.Windows.Forms.Application.OpenForms.Count - 1 To 1 Step -1
    Dim form As Form = System.Windows.Forms.Application.OpenForms(i)
    form.Close()
Next i
Run Code Online (Sandbox Code Playgroud)

...看起来没问题(如果不是冗长的话),只要我能编译其他所有东西,我就能测试它.


chr*_*ie1 5

Application.Exit几乎也会这样做.

我想如果所有表格都已关闭,你想要关闭应用程序.