我编写了以下过程来处理我的应用程序中的一组特定自定义控件。但是,随着我的应用程序的增长,我发现自己在我的应用程序中反复使用相同的过程来处理不同的自定义控件。
我有3个参数:
此过程可以转换为函数或参数Sub吗?我尝试使用各种Dim语句,但没有任何效果。
Public Sub removeButtons()
'This procedure is used to remove buttons from the panel
'after each category is clicked--
Dim btnList As List(Of btnCategoryTabs) = frmManageStore.flpMainPanel.Controls.OfType(Of btnCategoryTabs).ToList()
'Remove these Buttons
For Each btn As btnCategoryTabs In btnList
btn.Dispose()
Next
End Sub
答案 0 :(得分:2)
让您的代码可重用是一个好主意。要做到这一点,只需传递
将面板作为常规参数:
Public Sub removeButtons(Of TButton As IDisposable)(p As Panel)
Dim buttons = p.Controls.OfType(Of TButton).ToList()
For Each btn In buttons
btn.Dispose()
Next
End Sub
用法:removeButtons(Of btnCategoryTabs)(frmManageStore.flpMainPanel)
请注意,在用户界面元素上调用Dispose
看起来很可疑。您可能想要调查一下您在这里做的是否真的是适合该工作的工具。 (但这可能是另一个问题的主题。)