2011-07-17 70 views
1

是否可以多次打開表格?多次打開同一個表格

Button1的 form2.show

按下按鈕1 窗口2再次打開了

按下按鈕1 另一個窗口2旁邊的老窗口2

如果可能的話打開了,可以在Form1上的按鈕全部殺死Form2窗口打開?

回答

2

當然這是可能的。只是調暗兩個相同形式的實例。

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

未將對象引用設置爲對象的實例。 m_WindowList.Add(NewWindow) 該行的問題 – SirAudens

+0

啊,對不起,在m_WindowList的聲明中加入New。我已經在上面的答案中解決了它。 –

+0

甜。你真棒! – SirAudens

1
Dim MyNewForm2 = New Form2 
MyNewForm2.Show 
+0

....現在我覺得很愚蠢......那麼簡單......謝謝! – SirAudens

+0

只是出於好奇。有沒有辦法讓一個button1打開如何在文本框中描述的數字有多少個窗口?並關閉所有的form2,禁用那裏的工作呢? – SirAudens

+0

@SirAudens,有幾種方法來實現它,一種簡單的方法是保持對本地數組中所有新窗口的引用,然後在第二個按鈕上單擊關閉/全部殺死它們。 – Shimmy