这里就不多说了,大致来说是差不多的.
具体程序实现:
--------------------------------------------------------------
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Drawing
Imports System
Imports System.Web.UI.WebControls
Public Class LabelTextbox
Inherits System.Web.UI.WebControls.WebControl
Dim _text As String
Private Const MOUSE_SCRIPT As String = "" + vbCrLf
'''''''''''''''''''''''''''
'
'
''''''''''''''''''''''''''''
Public _backgroundcolor As Color
Private Label As New Label()
Private Textbox As New Textbox()
Get
Return _text
End Get
Set(ByVal Value As String)
_text = Value
End Set
End Property
Property backgroundColor() As Color
Get
If (Convert.ToString(_backgroundcolor)).ToString = "" Then
Return Color.Blue
Else
Return _backgroundcolor
End If
End Get
Set(ByVal Value As Color)
_backgroundcolor = Value
End Set
End Property
Property labelstring() As String
Get
Return Label.Text
End Get
Set(ByVal Value As String)
Label.Text = Value
End Set
End Property
Public Property textstring() As String
Get
Return Textbox.Text
End Get
Set(ByVal Value As String)
Textbox.Text = Value
End Set
End Property
Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)
' output.Write([Text])
MyBase.Render(output)
End Sub
Protected Overrides Sub CreateChildControls()
Me.EnsureChildControls()
Me.CreateChildControls()
CreateControls()
End Sub
Private Sub CreateControls()
Dim R, G, B
R = (Convert.ToInt32(_backgroundcolor.R)).ToString("X")
G = (Convert.ToInt32(_backgroundcolor.G)).ToString("X")
B = (Convert.ToInt32(_backgroundcolor.B)).ToString("X")
Dim t As New Table()
t.Attributes.Add("onmouseover", "ltmouseover(this,'" & "#" & R & G & B & "')")
t.Attributes.Add("onmouseout", "ltmouseout(this)")
t.Style.Add("font-size", "12px")
Dim tr As New TableRow()
Dim tc1 As New TableCell()
Dim tc2 As New TableCell()
tc1.Controls.Add(Label)
tc2.Controls.Add(Textbox)
tr.Controls.Add(tc1)
tr.Controls.Add(tc2)
t.Controls.Add(tr)
Me.Controls.Add(t)
End Sub
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
If (Not Me.Page.IsClientScriptBlockRegistered("mousescript")) Then
Me.Page.RegisterClientScriptBlock("mousescript", MOUSE_SCRIPT)
End If
MyBase.OnPreRender(e)
End Sub
End Class
--------------------------------------------------------------------------------------------------------
对于代码的解释这里暂时就不写了,原贴上的分析也很具体:)