Textbox WaterMark (antes con efecto sombra) Beta 2

Published 10/9/2006 15:45 | Eugenio Estrada

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.

Archivado en: ,,
Comparte este post: