这与我上一篇文章类似,但目的不同。
我已经构建了一个自定义控件,但是当我为它设置属性时......我页面上该控件的所有实例都会抓取完全相同的属性。我需要能够在我的页面上为控件的一个实例设置属性为“abc”,然后在同一页面上为控件的不同实例设置完全相同的属性为“xyz”。
任何人都可以放弃任何光明吗?
Namespace CustomControl
Public Class mycontrol : Inherits Literal
Protected Overrides Sub CreateChildControls()
Dim value As String = "test"
If _doubleit = True Then
value = value & " test"
End If
MyBase.Text = value
MyBase.CreateChildControls()
End Sub
Private Shared _doubleit As Boolean = True
Public Shared Property doubleit() As Boolean
Get
Return _doubleit
End Get
Set(ByVal value As Boolean)
_doubleit = value
End Set
End Property
End Class
结束命名空间
答案 0 :(得分:2)
从变量和属性声明中删除Shared
。 Shared
表示您不想要的内容:所有实例共享相同的值。
因此,您的代码应如下所示:
Private _doubleit As Boolean = True
Public Property doubleit() As Boolean
Get
Return _doubleit
End Get
Set(ByVal value As Boolean)
_doubleit = value
End Set
End Property