【问题标题】:Cloning a panel inside a FlowPanel克隆 FlowPanel 中的面板
【发布时间】:2022-01-23 07:31:26
【问题描述】:

我试图在 FlowPanel 中多次克隆一个面板...但它只克隆一次。

Dim NewFormConta1 As New Panel
NewFormConta1 = Panel1
PanelLateral.Controls.Add(NewFormConta1)

Dim NewFormConta2 As New Panel
NewFormConta2 = Panel1
PanelLateral.Controls.Add(NewFormConta2)

Dim NewFormConta3 As New Panel
NewFormConta3 = Panel1
PanelLateral.Controls.Add(NewFormConta3)

结果:

我需要什么:

【问题讨论】:

    标签: vb.net panel


    【解决方案1】:

    因为这些分配是参考分配

    NewFormConta1 = Panel1
    NewFormConta2 = Panel1
    NewFormConta3 = Panel1
    

    所以你的“新”面板都引用了同一个面板。您只有一个面板,但有 4 个引用。

    ' NewFormConta1 is a new panel
    Dim NewFormConta1 As New Panel
    
    ' NewFormConta1 points to Panel1 so the new panel from the first line
    ' is not referenced anymore and will be garbage collected
    NewFormConta1 = Panel1
    
    ' Panel1 is really added
    PanelLateral.Controls.Add(NewFormConta1)
    

    如何填充 Panel1?您可以以相同的方式填充每个 NewFormConta。

    或者另一个想法是制作一个用户控件,其中包含一个面板和标签。您可以使用用户控件中的公共属性修改标签属性。然后就这样做

    Dim NewFormConta1 As New UserControl1
    PanelLateral.Controls.Add(NewFormConta1)
    

    【讨论】:

    • @dr.null 喜欢this?考虑到即使这样也无法捕捉到它上面的标签,而且无论如何它可能有点太复杂了,可能不值得
    猜你喜欢
    • 1970-01-01
    • 2011-08-20
    • 2013-12-18
    • 2013-10-15
    • 2010-12-19
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多