Tema: evento leave
Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/09/2012, 11:23
JonathanB
Usuario no validado
 
Fecha de Ingreso: junio-2010
Ubicación: Guatemala
Mensajes: 196
Antigüedad: 14 años, 4 meses
Puntos: 25
Sonrisa Respuesta: evento leave

Saludos, si lo que quieres es colocar una marca de agua en tus TextBox, puedes crear una nueva clase a la cual le pondrás de nombre NativeTextBox.

Luego ingresa el siguiente código en la clase:

Código csharp:
Ver original
  1. using System;
  2. using System.ComponentModel;
  3. using System.Drawing;
  4. using System.Windows.Forms;
  5. using System.Runtime.InteropServices;
  6.  
  7. namespace JBucaro.NativeControls
  8. {
  9.     class NativeTextBox : TextBox
  10.     {
  11.         public const int ECM_FIRST = 0x1500;
  12.         public const int EM_SETCUEBANNER = ECM_FIRST + 1;
  13.  
  14.         [DllImport("user32.dll", CharSet = CharSet.Unicode)]
  15.         public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
  16.  
  17.         private string _cueBannerText = string.Empty;
  18.  
  19.         public string CueBannerText
  20.         {
  21.             get
  22.             {
  23.                 return _cueBannerText;
  24.             }
  25.             set
  26.             {
  27.                 _cueBannerText = value;
  28.                 this.SetCueText();
  29.             }
  30.         }
  31.  
  32.         private void SetCueText()
  33.         {
  34.             SendMessage(this.Handle, EM_SETCUEBANNER, new IntPtr(0), _cueBannerText);
  35.         }
  36.     }
  37. }

Al compilar, aparecerá un nuevo control en tu barra de herramientas (Componentes de "tu proyecto").

Únicamente debes de reemplazar tus TextBox con este control y llenar el valor de la propiedad CueBannerText con el texto que quieres que se muestre si el texto no tiene contenido. Ya no necesitas hacer la comparación en el evento OnLeave.

Saludos,