我正在学web自下定义控件,想写一个简单的继承自label的自定义控件,为它添加一个属性Color,可以通过对color属性赋值来设置label的颜色,请问怎么才能把color指定给text啊?我是这么做的:
Inherits System.Web.UI.WebControls.Label Dim _text As String <Bindable(True), Category("Appearance"), DefaultValue("")> Overrides Property [Text]() As String
Get
Return _text
End Get Set(ByVal Value As String)
<font color=red>_text = "<font style=color:" & strColor & ";font-weight:bolder>" & Value & "</font>"</font>
End Set
End Property Private strColor As String
Public Property Color() As String
Get
Return strColor
End Get
Set(ByVal Value As String)
strColor = Value
End Set
End Property Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
output.Write([Text])
End Sub Public Overrides Property ForeColor() As System.Drawing.Color
Get End Get
Set(ByVal Value As System.Drawing.Color) End Set
End Property
效果是达到了,但它的text值总是 <font style=color:green;font-weight:bolder>rrrrrrrrrr</font> 这样的,而不是仅仅是rrrrrrrrrr,请问我应该怎么写?
Inherits System.Web.UI.WebControls.Label Dim _text As String <Bindable(True), Category("Appearance"), DefaultValue("")> Overrides Property [Text]() As String
Get
Return _text
End Get Set(ByVal Value As String)
<font color=red>_text = "<font style=color:" & strColor & ";font-weight:bolder>" & Value & "</font>"</font>
End Set
End Property Private strColor As String
Public Property Color() As String
Get
Return strColor
End Get
Set(ByVal Value As String)
strColor = Value
End Set
End Property Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
output.Write([Text])
End Sub Public Overrides Property ForeColor() As System.Drawing.Color
Get End Get
Set(ByVal Value As System.Drawing.Color) End Set
End Property
效果是达到了,但它的text值总是 <font style=color:green;font-weight:bolder>rrrrrrrrrr</font> 这样的,而不是仅仅是rrrrrrrrrr,请问我应该怎么写?
解决方案 »
- 如何在IE的兼容模式下实现渐变的效果
- 集合能被序列化吗?
- DCOM 设置Excel权限后 服务器启动问题
- gridview 单击事件 触发另一个事件 --- 事件怎样才能连续引发?
- DataGrid問題
- 用Reflector反编译的.dll文件中的中文全部显示为Ucode编码,请问如何显示出汉字?用程序编码显示也行!急!!
- 这段代码错在哪儿?
- adonet and ado
- ***如何遍历用HTML的<input type='checkbox' ID=...>的控件值
- 如何对网站的每个页面进行TKD设置?
- 请问大家在.NET中都是怎样实现邮件的接收的!
- 好多问题可以用不同的方法解决,真不知该如何去选择最优的方案
<font color=red>_text = "<font style=color:" & strColor & ";font-weight:bolder>" & Value & "</font>"</font>
End Set其实应该是:
Set(ByVal Value As String)
_text = "<font style=color:" & strColor & ";font-weight:bolder>" & Value & "</font>"
End Set我本来是想加颜色的:(
output.Write(Text)
End Sub
_text = "<font style=color:" & strColor & ";font-weight:bolder>" & Value & "</font>"那么Text属性Get的时候回去的就是_text,当然就是这样啦,否则你就改写Get咯。其实我看你的目的,正确的写法是_text就保存用户Set的Text属性,不要做任何修改,然后Render这样写:
output.Write("<font style=color:" & strColor & ";font-weight:bolder>" & _text & "</font>")
output.Write("<font style=color:" & strColor & ";font-weight:bolder>" & _text & "</font>")
这样写也有一个问题,就是label其它的属性就不起作用了,如字体等,怎么让其它属性也起作用呢?谢谢。