またまたよろしくお願いします。
フォームが50個あってそれをランダムで表示させることはできましたが、表示したフォームをもう開かないという方法がどうしてもできません。自分がヘタレなのはよくわかっていますが、よろしくお願いします。
へたれ…ねぇ…
Collectionクラスについて調べてみて。
わからなかったら…後はどうしようもないなぁ。
ソースがないし。
あまりよい手ではないですが…
form1にcommand1、command2、text1があるものと、form2を作る。
form1にこれ
↓
Option Explicit
Private Sub Command1_Click()
Call myFormCheck(Text1.Text)
End Sub
Private Sub Command2_Click()
Dim frmForm As Form
Static intCnt As Integer
intCnt = intCnt + 1
Set frmForm = New Form2
frmForm.Caption = Format$(intCnt)
Load frmForm
frmForm.Show
End Sub
Private Sub myFormCheck(strMyCaption As String)
Dim myForm As Form
For Each myForm In Forms
If myForm.Caption = strMyCaption Then
Unload myForm
End If
Next
End Sub
Private Sub Form_Load()
Me.Caption = "0"
Text1.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
これで、コマンド2を押すたびに番号のついたform2が生まれます。
コマンド1を押すたびにtext1に入力した番号のフォームを閉じます。
あくまでも例ですが、このように閉じたいフォームを開いている中から
探してなんとかするという方法になりそうな気がします。
> もう開かない
開くときに開いていい物かどうかとかの判断自体の記述は、作者さんのご判断かと。