extender TextBox

Moderador: raul338

C#, tambien llamado C Sharp

extender TextBox

Notapor angelarg » Dom Ago 17, 2008 10:00 pm

Hola,

Alguien me puede decir cómo hago para extender un textBox para que se pueda seleccionar si se va a digitar un string o números?... sé cómo hacer para que solo se puedan digitar números, pero la idea sería tener una nueva propiedad en las propiedades del textBox que me permitiera selecionar entre string y números y que me validara lo que se digite en el campo según el tipo que yo seleccione en esta propiedad. Gracias, :D

Angela
angelarg
Novato
Novato
 
Mensajes: 5
Registrado: Dom Ago 17, 2008 9:57 pm


Re: extender TextBox

Notapor gonso » Lun Ago 18, 2008 11:38 am

A ver si esto te sirve:

Tienes que crear una clase que derive de TextBox (acuérdate de poner una referencia a "using System.Windows.Forms" para que te acepte los controles")
Código: Seleccionar todo
  1. public class MiTextBox:TextBox



A esta clase le añades una propiedad de tipo bool (será la que determine si el texto acepta letras o números)
por ejemplo:

Código: Seleccionar todo
  1. private bool letra=true;

  2. public bool Letra

  3. {

  4.     get

  5.        {

  6.            return letra;

  7.        }

  8.     set

  9.        {

  10.            letra=value;

  11.        }

  12. }



Tienes que hacer un "override" con la función OnKeyPress o con aquella con la que vayas a determinar si se permite introducir un número o una letra

Código: Seleccionar todo
  1.  

  2. protected override void OnKeyPress(KeyPressEventArgs e)

  3.         {

  4.             if (letra)

  5.             {

  6.                 //Aquí tu código para comprobar y aceptar sólo letras;

  7.             }

  8.             else

  9.             {

  10.                 //Aquí tu código para comprobar y aceptar sólo números

  11.             }

  12.             base.OnKeyPress(e);

  13.         }

  14.  



Añades a tu formulario un control del tipo que acabas de crear (cuando derivas un control de otro, éste aparecerá en tu "toolbox" en la sección "Componentes TuPrograma" (el primero de todos).
Inicialmente el control se activará con el modo letra (recuerda que hemos puesto letra en true), si quieres cambiarlo a número no tienes más que llamar a la propiedad Letra y asignarle el valor false... NombreDeTuControl.Letra=false;

Espero haberte ayudado...
Saludos.
gonso
Usuario Activo
Usuario Activo
 
Mensajes: 44
Registrado: Dom Nov 05, 2006 4:00 am


Re: extender TextBox

Notapor angelarg » Lun Ago 18, 2008 3:58 pm

Mil gracias!!! ... funciona muy lindo :D
angelarg
Novato
Novato
 
Mensajes: 5
Registrado: Dom Ago 17, 2008 9:57 pm


    

Volver a C#

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados