VB.NET 删除主窗体控件的用户控件
VB.NET usercontrols to remove main form controls
我有一个主窗体,它有一个按钮和一个 FlowLayoutPanel
。
我还创建了一个 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
效果很好。
例如,我已经在主窗体的面板中添加了该 UserControl 的 5 个实例,现在我想使用添加的用户控件 (DownloadControls) 的每个实例上的删除按钮删除其中的任何一个,并保持面板项目的组织。
我怎样才能做到这一点?
无法在您刚刚使用的删除按钮上使用
Yourcontrol.visible = 假
这将隐藏该功能,以便将其删除
您可以为您的用户控件创建一个新的 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
您可以了解有关处理和引发事件的更多信息:
这在用户控制代码中对我有用:
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
DirectCast(Me.Parent, FlowLayoutPanel).Controls.Remove(Me)
End Sub
我有一个主窗体,它有一个按钮和一个 FlowLayoutPanel
。
我还创建了一个 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
效果很好。 例如,我已经在主窗体的面板中添加了该 UserControl 的 5 个实例,现在我想使用添加的用户控件 (DownloadControls) 的每个实例上的删除按钮删除其中的任何一个,并保持面板项目的组织。
我怎样才能做到这一点?
无法在您刚刚使用的删除按钮上使用
Yourcontrol.visible = 假
这将隐藏该功能,以便将其删除
您可以为您的用户控件创建一个新的 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
您可以了解有关处理和引发事件的更多信息:
这在用户控制代码中对我有用:
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
DirectCast(Me.Parent, FlowLayoutPanel).Controls.Remove(Me)
End Sub