2015-12-13 82 views
1

我有一個主窗體,其中有一個按鈕和一個FlowLayoutPanel。 另外我創建了一個UserControl,它有一些按鈕和其他控件。VB.NET usercontrols刪除主窗體控件

當我點擊我的主要形式的按鈕,它增加了我的用戶到面板(多次點擊):

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click 
    Dim ctrl As New DownloadControls 
    FlowLayutPanel1.Controls.Add(ctrl) 
End Sub 

這工作正常。 例如,我已經將5個UserControl的實例添加到了主窗體中的面板,現在我想要刪除其中任何一個使用添加的usercontrols(DownloadControls)的每個實例上的remove按鈕並保持面板項目的組織。

我該如何做到這一點?

回答

0

您可以創建一個新的RemoveClicked事件這將隱藏的功能用戶控制並在用戶點擊刪除按鈕時提升。然後,您可以處理該表單以刪除該控件。

代碼爲您的用戶控件:

Public Event RemoveClicked As EventHandler 
Public Sub OnRemoveClicked(e As EventArgs) 
    RaiseEvent RemoveClicked(Me, e) 
End Sub 

Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click 
    OnRemoveClicked(EventArgs.Empty) 
End Sub 

代碼爲表單:

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click 
    Dim ctrl As New DownloadControls 
    AddHandler ctrl.RemoveClicked, AddressOf ctrl_RemoveClicked 

    Me.FlowLayutPanel1.Controls.Add(ctrl) 
End Sub 

Private Sub ctrl_RemoveClicked(sender As Object, e As EventArgs) 
    Me.FlowLayutPanel1.Controls.Remove(DirectCast(sender, Control)) 
End Sub 

您可以瞭解更多有關處理和引發事件:

0

無法在你的刪除按鈕,你只需要使用

Yourcontrol.visible =假

,使其被刪除

相關問題