3

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関数を( TFMCloseで示されているように)に置き換えましたが、コンパイラはそれがのメンバーではないと文句を言います。OpenFormsMy.Application

開いているフォームにはどこからアクセスできますか?

4

5 に答える 5

11

OpenFormsプロパティは を返しますFormCollection。コレクションを反復処理して、すべてのフォームを処理できます。

For each f as Form in My.Application.OpenForms
 f.Close()
Next
于 2009-02-26T07:35:33.237 に答える
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

...これは問題ないように見えますが (詳細ではない場合)、他のすべてをコンパイルできるようになったらすぐにテストできます..

于 2009-02-26T07:42:08.163 に答える
5

Application.Exit はほとんど同じことを行います。

すべてのフォームが閉じられている場合は、とにかくアプリケーションを閉じたいと思います。

于 2009-02-26T07:33:59.743 に答える
1

My.Application.OpenForms では、VB.Net アプリケーションでアプリケーション フレームワークを使用する必要があります (「プロジェクト プロパティ」、「アプリケーション」、「アプリケーション フレームワークを有効にする」を参照)。

Application Framework を使用しない場合は、代わりに Application.OpenForms (System.Windows.Forms 名前空間から) を使用できます。

于 2012-11-26T05:15:44.237 に答える
0

Application.Windows物件をご覧ください。

于 2009-02-26T07:32:38.157 に答える