克隆我的Windows窗体自定义控件可以说是有效的,但是我无法看到克隆

时间:2018-03-15 13:51:51

标签: .net vb.net custom-controls clone

我正在尝试克隆我的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属性。一切都应该存在,特别是深拷贝元素。克隆的位置与原始位置相同。

我唯一的问题是:我没有看到克隆。什么都没有。

我想念什么?

1 个答案:

答案 0 :(得分:2)

要使控件可见,它必须父级到Form或其他具有TopLevelControl形式的控件。如果看不到任何祖先控件,则主题控件也将不可见。

可以通过设置控件的Parent Property或将控件添加到父控件的Controls Property来完成。