我有一个带有按钮和一个主窗体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个实例,现在我想使用添加的usercontrol(DownloadControls)的每个实例上的remove按钮删除其中的任何一个,并保持Panel项目的井井有条。
我该如何实现?
您可以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
您可以了解有关处理和引发事件的更多信息:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句