我正在尝试克隆我的Windows窗体自定义控件。
在其中,我有
Public Class UFB
Implements ICloneable
...
Public Function Clone() As Object Implements ICloneable.Clone
'Copy this instance's properties.
Dim oClone As New UFB With {
.BackColor = Me.BackColor,
'Another few dozen properties.
... }
'Deep copy of objects in a dictionary (loop).
...
Return oClone
End Function
...
End Class
使用此窗体的Windows窗体有一个要克隆的命令按钮。要克隆的对象名为cFlb
。
我这样用:
Public Class FMain
Dim WithEvents cFlbClone As UFB
Private Sub Clone()
cFlbClone = CType(cFlb.Clone, UFB)
cFlbClone.BackColor = Drawing.Color.Yellow 'Make it distinguishable.
cFlbClone.Visible = True
cFlb.Visible = False
End Sub
End Class
在两个项目中编译良好。
cFlb.Visible = False
上的断点让我检查cFlb
属性。一切都应该存在,特别是深拷贝元素。克隆的位置与原始位置相同。
我唯一的问题是:我没有看到克隆。什么都没有。
我想念什么?
答案 0 :(得分:2)
要使控件可见,它必须父级到Form或其他具有TopLevelControl形式的控件。如果看不到任何祖先控件,则主题控件也将不可见。
可以通过设置控件的Parent Property或将控件添加到父控件的Controls Property来完成。