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
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
private bool letra=true;
public bool Letra
{
get
{
return letra;
}
set
{
letra=value;
}
}
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
protected override void OnKeyPress(KeyPressEventArgs e)
{
if (letra)
{
//Aquí tu código para comprobar y aceptar sólo letras;
}
else
{
//Aquí tu código para comprobar y aceptar sólo números
}
base.OnKeyPress(e);
}
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.