复制控制动作

时间:2016-01-03 18:07:25

标签: vb.net

在Vb.net中,我在一个表单上有一个按钮(称为button_abc),更改颜色,文本更改,有点击事件等。我希望在另一个表单上复制相同的按钮,以便它可以是从2个不同的地方使用(其中一种形式可能不可见)。当文本或颜色在一个上更改时,它需要出现在两者中。因此,如果两个表单都是打开的,则按钮总是看起来与外观和操作完全匹配。有没有办法自动将它们“链接”在一起?

复制&粘贴一个按钮,只需创建一个新的(单独的)按钮---不是我想要的。

3 个答案:

答案 0 :(得分:1)

我倾向于沿着使用适配器的路径来更新按钮。

这样的事情:

Public Class ButtonList
    Inherits List(Of Button)

    Public Property Color() As Color
        Get
            Return Me.Select(Function (b) b.Color).FirstOrDefault()
        End Get
        Set(ByVal Value As Color)
            For Each b In Me
                b.Color = Value
            Next
        End Set
    End Property

    ' + all other relevant properties.

End Class

由于它继承自List(Of Button),您只需使用.Add(button)将所需的所有按钮添加到此类,然后输入要更新的所有属性。现在代码看起来非常相似,但您现在将立即更新许多按钮。

答案 1 :(得分:0)

由于您始终希望按钮匹配,因此如果一个表单是打开/可见,则无关紧要。您只需创建2个按钮,每个表单上有1个按钮,并使它们在两个表单上执行相同的操作。所以一些伪代码可能如下所示:

表格1:

Button.ClickEvent
  Me.Color = UglyGreen
  Form2.Button.Color = UglyGreen
End Button.ClickEvent

表格2:

Button.ClickEvent
  Me.Color = UglyGreen
  Form1.Button.Color = UglyGreen
End Button.ClickEvent

这不是一个非常漂亮的解决方案,但它适用于指定的任务。

答案 2 :(得分:0)

除了我正在使用VB之外,这与我所描述的一致 Duplicate WebControls at Runtime