重写程序以接受多个参数

时间:2015-01-01 16:17:16

标签: vb.net

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

我有3个参数:

  1. btnCategoryTabs(自定义控件)
  2. frmManageStore(原始形式,但现在我必须在其他表格上使用)
  3. flpMainPanel(原始面板,但现在我有更多面板会使用相同的程序)
  4. 此过程可以转换为函数或参数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
    

1 个答案:

答案 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看起来很可疑。您可能想要调查一下您在这里做的是否真的是适合该工作的工具。 (但这可能是另一个问题的主题。)