2013-10-04 125 views
0

我使用MDI container運行我爲我的客戶創建的商業應用程序。 由於使用MDI意味着當我打開幾個表單時,它們仍然會始終在後臺運行,直到我將它們關閉爲manualy。打開標籤控制

我需要的是製作User Control或其他任何可以預覽表格中所有打開的表格,以便我的客戶可以輕鬆關閉所有或部分打開的表格,而無需關閉他正在查看的表格。

現在我已經使用了這個代碼,所以現在只有第一次點擊的菜單項顯示爲按鈕,但沒有其他人點擊菜單項。

Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked 
    Dim Button As New Button 
    Me.Panel5.Controls.Add(Button) 
    Button.Text = e.ClickedItem.Name 
    Button.Width = 50 
    Button.Height = 25 
End Sub 

現在我需要編寫代碼來添加更多按鈕波紋管,也應該添加按鈕添加代碼,只有當我在子菜單項,點擊(在一個被點擊時新的形式出現)。
而且,我現在應該在預覽的用戶按鈕控制中添加一點點Close按鈕。

+0

您正在尋找一種方法來自動化按鈕創建過程? (添加具有特定屬性的按鈕並單擊事件)? Tabs控件在哪裏進入這一切? – varocarbas

+0

是的,我想。我將它命名爲Tab Control,因爲我希望它看起來像TAB,沒有別的。 – Hoh

+0

然後你想依賴tabControl而不是在面板上?你想每個標籤一個按鈕? – varocarbas

回答

1

從您的意見中,我瞭解到您在運行時添加按鈕的想法並不太清楚,因此我將包含一個小代碼,希望能夠在這方面爲您提供幫助。啓動一個新的項目,並把面板(Panel5)和一個按鈕(AddButtons)就可以了,寫這樣的代碼:

Dim lastButtonIndex, lastLeft, lastTop As Integer 

Private Sub Button_Click(sender As System.Object, e As System.EventArgs) 

    Dim curButton As Button = DirectCast(sender, Button) 

    If (curButton.Name = "Button1") Then 
     'do Button1 stuff 
    End If 
    'etc. 

End Sub 

Private Sub addNewButton() 

    lastButtonIndex = lastButtonIndex + 1 
    lastLeft = lastLeft + 5 
    lastTop = lastTop + 5 

    Dim Button As New Button 
    With Button 
     .Name = "Button" + lastButtonIndex.ToString() 
     .Text = "Button" + lastButtonIndex.ToString() 
     .Width = 50 
     .Height = 25 
     .Left = lastLeft 
     .Top = lastTop 
     AddHandler .Click, AddressOf Button_Click 
    End With 

    Me.Panel5.Controls.Add(Button) 

End Sub 

Private Sub ButtonAddButtons_Click(sender As System.Object, e As System.EventArgs) Handles AddButtons.Click 
    addNewButton() 
End Sub 

此代碼將您點擊AddButtons每次添加一個新的按鈕面板。所有的按鈕將有一個相關的Click Event(所有按鈕都是相同的):Button_Click。通過sender來了解該方法中當前哪個按鈕是通過sender來獲得的,如代碼所示(您可以將許多條件放在按鈕中,名稱從1開始依次給出;但您可以將其他屬性作爲參考,curButton是給定的Button Control)。

請記住,您必須處理的一個問題是按鈕的位置。上面的代碼有一個非常簡單的X/Y值(Left/Top屬性)自動增加,從邏輯上講,它不會提供你想要的。

+0

這是非常接近我neede的東西,但無論如何我解決了它,謝謝你回答@Varocarbas – Hoh

+0

@Nidzaaaa歡迎您。 – varocarbas