重写过程以接受多个参数

Rewrite procedure to accept multiple parameters

我编写了下面的过程来处理我的应用程序中一组特定的自定义控件。但是,随着我的应用程序的增长,我发现自己在我的应用程序中对不同的自定义控件一遍又一遍地使用相同的过程。

我有 3 个参数:

  1. btnCategoryTabs(自定义控件)
  2. frmManageStore(原来的形式,但现在我必须在其他形式上使用)
  3. flpMainPanel(原始面板,但现在我有更多使用相同程序的面板)

这个过程可以变成一个Function或参数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

让您的代码可重用是个好主意。为此,只需通过

  • 作为通用参数的自定义控件的类型和
  • 作为常规参数的面板:

    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 看起来很可疑。您可能想要调查您在这里所做的是否真的是完成这项工作的正确工具。 (不过,这可能是另一个问题的主题。)