某スレ主氏に捧ぐ(でもとても奨められたもんではないので見せられない)コード。
Module FormManager Private forms As New Dictionary(Of Type, Form) Public Function GetForm(Of TForm As Form)( _ ParamArray args As Object()) As TForm Dim t As Type = GetType(TForm) If (Not(forms.ContainsKey(t)) _ OrElse forms(t).IsDisposed) Then Dim form As TForm _ = DirectCast(Activator.CreateInstance(t, args), _ TForm) forms(t) = form Return form End If Return DirectCast(forms(t), TForm) End Function End Module