在将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
我已将Unload
函数替换为Close
(由 TFM 指示),但编译器抱怨OpenForms
不是My.Application
的成员{1}}。
我在哪里可以访问开放表格?
答案 0 :(得分:11)
OpenForms
属性返回FormCollection
。您可以遍历集合来处理所有表单。
For each f as Form in My.Application.OpenForms
f.Close()
Next
答案 1 :(得分: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
......看起来没问题(如果不是详细的话),只要我能编译其他所有东西,我就能测试它。
答案 2 :(得分:5)
Application.Exit几乎也会这样做。
我想如果所有表格都已关闭,你想要关闭申请。
答案 3 :(得分:1)
My.Application.OpenForms要求VB.Net应用程序使用应用程序框架(请参阅项目属性,应用程序,启用应用程序框架)。
如果您不使用Application Framework,则可以使用Application.OpenForms(来自System.Windows.Forms命名空间)。
答案 4 :(得分:0)
查看Application.Windows
属性。