以下は私が書いたコードです
Private Sub CloseTransactionForms() Dim ActiveFroms As New List(Of String) Dim formToClose As New List(Of Form) Dim j As Integer ActiveFroms.Add("FrmSale") ActiveFroms.Add("FrmpPurchase") ActiveFroms.Add("FrmSaleReturn") ActiveFroms.Add("FrmPurchaseReturn") Try For Each frm As Form In My.Application.OpenForms For j = 0 To ActiveFroms.Count - 1 If frm.Name.ToString() = ActiveFroms.Item(j) Then formToClose.Add(frm) End If Next Next If formToClose.Count > 0 Then Dim i As Integer For i = 0 To formToClose.Count - 1 Dim xform As Form = formToClose.Item(i) xform.Close() Next End If Catch ex As Exception End Try End Sub
このコードは、アプリケーションで開いているフォームを反復処理し、アプリケーションから定義済みのフォームを閉じます
しかし、それは私には良くないようです(3つのforループを使用し、forループを介して繰り返している間に時々かかりました)別の良い方法があると思います。良い解決策を提案してください
注:私はすでにこの質問をSOで見ました