2011-07-17 3 views
1

Est-il possible d'ouvrir un formulaire plus d'une fois?Ouvrir le même formulaire plusieurs fois

button1 form2.show

Appuyez sur button1 form2 ouvre

presse button1 à nouveau une autre form2 ouvre à côté de l'ancien form2

Si possible, peut un bouton sur Form1 tuer tous Fenêtres Form2 ouvertes?

Répondre

2

Bien sûr, c'est possible. Juste dim deux instances de la même forme.

Public Class Form1 

    Private m_WindowList As New List(Of Form2) 

    Private Sub OpenWindowButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenWindowButton.Click 
     OpenWindow() 
    End Sub 

    Private Sub CloseWindowsButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseWindowsButton.Click 
     CloseWindows() 
    End Sub 

    Private Sub OpenWindowsButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenWindowsButton.Click 
     Dim WindowCount As Int32 
     If Int32.TryParse(WindowCountTextBox.Text, WindowCount) Then 
      OpenWindows(WindowCount) 
     End If 
    End Sub 

    Private Sub OpenWindow() 
     Dim NewWindow As New Form2 
     m_WindowList.Add(NewWindow) 
     NewWindow.Show() 
    End Sub 

    Private Sub OpenWindows(ByVal Count As Int32) 
     For i = 1 To Count 
      OpenWindow() 
     Next 
    End Sub 

    Private Sub CloseWindows() 
     For Each Window In m_WindowList 
      Window.Close() 
      Window.Dispose() 
     Next 
     m_WindowList.Clear() 
    End Sub 

End Class 
+0

La référence d'objet n'est pas définie sur une instance d'un objet. m_WindowList.Add (NewWindow) problème avec cette ligne – SirAudens

+0

Ah, désolé, ajouter Nouveau à la déclaration de m_WindowList. Je l'ai corrigé dans la réponse ci-dessus. –

+0

Sweet. votre génial! – SirAudens

1
Dim MyNewForm2 = New Form2 
MyNewForm2.Show 
+0

.... maintenant je me sens stupide ... aussi simple ... MERCI! – SirAudens

+0

juste par curiosité. est-il un moyen de faire un bouton1 pour ouvrir combien de fenêtres en tant que nombre dans une zone de texte décrit? et aussi de fermer toute forme2 désactivant ce qui marche là aussi bien? – SirAudens

+0

@SirAudens, il existe plusieurs façons de le réaliser, une façon simple serait de garder une référence à toutes les nouvelles fenêtres dans un tableau local, puis au second bouton cliquez sur Fermer/les tuer tous. – Shimmy

Questions connexes