0

button1 をクリックして一連のフォームを作成して表示しています。次に、button2 をクリックして、これらのフォームをすべて閉じる必要があります。

イベント button1_Click:

Dim frm As New myfrm()

frm.Tag = "temptag"

frm.TopLevel = False

controls.add(frm)

イベント button2_Click:

任意のフォームを閉じますtag = "temptag"

それを達成するコードを作成する方法は?

4

2 に答える 2

2

次のコードは、タグを使用せずに必要なことを行います。

Public Class Form1
    Private ChildNumber As Integer = 0
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim frm As New Form1
        ChildNumber += 1
        frm.Text = "Child Form " & ChildNumber
        frm.Show()
        frm.TopLevel = False
        Me.Controls.Add(frm)
        frm.Tag = "temptag"
    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Dim count As Integer = Me.Controls.Count
        For i As Integer = Me.Controls.Count - 1 to 0 Step -1
            Dim ctrl As Control
            ctrl = Me.Controls(i)
            If ctrl.Tag = "temptag" Then
                DirectCast(ctrl, Form1).Dispose()
            End If
        Next
    End Sub
End Class
于 2013-10-23T11:19:48.677 に答える