Textbox WaterMark (antes con efecto sombra) Beta 2

Esta es la nueva versión del Textbox con marca de agua, el proceso de creación es igual que el anterior, esta vez el código es el siguiente:


 


 


Public Class TextBoxWaterMark
Private _active As Boolean
Private _defaultFont As Font = Me.Font
Private _defaultColor As Color = Me.ForeColor
Private _defaultBackColor As Color = Me.BackColor

Private _watermarkText As String
Private _watermarkFont As Font = New Font(_defaultFont, FontStyle.Italic)
Private _watermarkColor As Color = Color.Gray
Private _watermarkBackColor As Color = Color.White
Private _password As Boolean

Property WaterMarkText() As String
Get
Return _watermarkText
End Get
Set(ByVal value As String)
_watermarkText
= value
If _active = True Or Me.Text = «» Then
ActiveWaterMark()
End If
End Set
End Property

Property WaterMarkColor() As Color
Get
Return _watermarkColor
End Get
Set(ByVal value As Color)
_watermarkColor
= value
End Set
End Property

Property WaterMarkBackColor() As Color
Get
Return _watermarkBackColor
End Get
Set(ByVal value As Color)
_watermarkBackColor
= value
End Set
End Property

Property WaterMarkFont() As Font
Get
Return _watermarkFont
End Get
Set(ByVal value As Font)
_watermarkFont
= value
End Set
End Property

Private Sub TextBoxWaterMark_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Enter
If _active = True Then
QuitWaterMark()
End If
End Sub

Private Sub TextBoxWaterMark_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
If Me.Text = «» Then
ActiveWaterMark()
End If
End Sub

Public Overrides Property Text() As String
Get
If _active = True Then
Return «»
Else
Return MyBase.Text
End If
End Get
Set(ByVal value As String)
MyBase.Text = value
End Set
End Property

Public Sub ActiveWaterMark()
_active
= True
Me.Text = _watermarkText
Me.Font = _watermarkFont
Me.BackColor = _watermarkBackColor
Me.ForeColor = _watermarkColor
End Sub

Public Sub QuitWaterMark()
_active
= False
Me.Text = «»
Me.Font = _defaultFont
Me.BackColor = _defaultBackColor
Me.ForeColor = _defaultColor
End Sub

Private Sub TextBoxWaterMark_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.TextChanged
If Me.Text = «» And Not Me.Focused Then
ActiveWaterMark()
End If
End Sub
End Class


 


Se han corregido en esta versión los siguientes errores:



  • Si se está mostrando la marca de agua la propiedad Text de vuelve una cadena vacía

  • Se pueden cambiar los colores del texto normal

  • Si el texto se cambia sin estar en el foco se activa la marca de agua

  • En caso de que el usuario escriba el mismo texto de la marca de agua no se active los colores de la marca de agua

Además he añadido las sigiuentes características:



  • Se puede cambiar el color de fondo de la marca de agua.

  • Se pueden cambiar los colores de la marca de agua

Pronto publicaré la siguiente versión.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *