我有一个类别<代码>,包括我可以在不同控制下使用的背景材料矩阵。
Friend Sub New(ByRef objControl As System.Windows.Forms.Control)
m_objControlContainer = objControl
m_mnuCopyCell2Clipboard = New ToolStripMenuItem("Copy Cell")
m_PopupMenu = New ContextMenuStrip
m_PopupMenu.Items.AddRange(New ToolStripMenuItem() {m_mnuCopyCell2Clipboard})
End Sub
例如,我可在数据GridViewDGVTable:
中使用。
Private m_objPopUpMenu As clsContextPopUpMenu
m_objPopUpMenu = New clsContextPopUpMenu(CType(DGVTable, System.Windows.Forms.Control))
但是,注意到<代码>m_objPopUpMenu。 IS NOT与上述数据网格表有关的表格。 根据背景材料MenuStrip Constructionor在MSDN的解释,我认为,m_objPopUpMenu
不能自动处理,因为它不是形式上的儿童。
我的问题是,我是否必须在设计师中明确处置<条码>m_objPopUpMenu:
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
**m_objPopUpMenu.Dispose()**
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
一个更广泛的问题是,我何时处置物体/资源? 当然,采集器不是释放所有现有记忆的魔鬼。 Can 我始终如上所示处置分处置物/资源。