Visualizza il feed RSS

Fix's Blog

TextBox con scritta di sfondo (Secondo Esempio)

Valuta questo inserimento
di
Fix
pubblicato il 12-12-2010 alle 14:57 (4301 Visite)
Secondo Esempio con utilizzo di una Label:

In quest altro esempio, ho utilizzato un controllo Label che renderò visibile o meno in base al contenuto della TextBox.

Sono disponibili 3 Proprietà: una per impostare il testo di sfondo, una per impostarne il Font ed una per impostarne il colore.

(ovviamente è possibile aggiungere altre proprietà)

Il testo da inserire come sfondo è settabile attraverso l' apposita proprietà "BackText" , sia in fase di Design che in fase di RunTime.

Imports System.ComponentModel

Public Class TextBoxWithBackText
Inherits TextBox

Private lbl As Label

Public Sub New()
MyBase.new()
'-- imposto la label con dei valori di Default
lbl = New Label
lbl.Font = New Font(Me.Font, FontStyle.Italic)
lbl.BackColor = Color.Transparent
lbl.ForeColor = Color.Gray
lbl.Size = New Size(Me.Size.Width - 3, Me.Size.Height)
lbl.Location = New Point(3, 1)
lbl.Anchor = AnchorStyles.Left Or AnchorStyles.Top Or AnchorStyles.Right Or AnchorStyles.Bottom
lbl.Text = "Insert Text"
'-- aggiungo la label alla textbox
Me.Controls.Add(lbl)
End Sub

<Category("Aspetto"), Description("Testo di Sfondo")> _
Public Property BackText() As String
Get
Return lbl.Text
End Get
Set(ByVal value As String)
lbl.Text = value
Me.Invalidate()
End Set
End Property

<Category("Aspetto"), Description("Colore Testo di Sfondo")> _
Public Property BackTextForeColor() As Color
Get
Return lbl.ForeColor
End Get
Set(ByVal value As Color)
lbl.ForeColor = value
Me.Invalidate()
End Set
End Property

<Category("Aspetto"), Description("Font Testo di Sfondo")> _
Public Property BackTextFont() As Font
Get
Return lbl.Font
End Get
Set(ByVal value As Font)
lbl.Font = value
Me.Invalidate()
End Set
End Property

Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
MyBase.OnTextChanged(e)
'-- Se la textbox vuota
'-- visualizzo la label
If MyBase.Text.Length = 0 Then
lbl.Visible = True
Else
'-- altrimenti la nascondo
lbl.Visible = False
End If
Me.Invalidate()
End Sub
End Class

aggiornamento da 04-06-2011 a 10:29 di Fix

Tag: textbox, vbnet
Categorie
Programmazione

Commenti