我有一个主窗体,它有一个按钮和一个FlowLayoutPanel
。
我还创建了一个UserControl
,它有一些按钮和其他控件。
当我单击主窗体中的按钮时,它会将我的usercontrol添加到面板中(多次点击):
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)的每个实例上,并保持Panel项目的有序化。 / p>
我怎样才能做到这一点?
答案 0 :(得分:0)
无法在您的删除按钮上使用
Yourcontrol.visible = false
这会隐藏该功能以便将其删除
答案 1 :(得分: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
您可以了解有关处理和举办活动的更多信息:
答案 2 :(得分:0)
这在用户控制代码中对我有用:
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
DirectCast(Me.Parent, FlowLayoutPanel).Controls.Remove(Me)
End Sub