フォームをランダム表示でひとつずつ消していく


魔鬼  2004-01-20 23:58:09  No: 111443

またまたよろしくお願いします。
フォームが50個あってそれをランダムで表示させることはできましたが、表示したフォームをもう開かないという方法がどうしてもできません。自分がヘタレなのはよくわかっていますが、よろしくお願いします。


いちゆ  2004-01-21 00:01:49  No: 111444

へたれ…ねぇ…
Collectionクラスについて調べてみて。
わからなかったら…後はどうしようもないなぁ。
ソースがないし。


かな  2004-01-21 04:19:46  No: 111445

あまりよい手ではないですが…

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に入力した番号のフォームを閉じます。
あくまでも例ですが、このように閉じたいフォームを開いている中から
探してなんとかするという方法になりそうな気がします。

> もう開かない
開くときに開いていい物かどうかとかの判断自体の記述は、作者さんのご判断かと。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加