C sharp - función controla matricula de auto

   
Vista:

función controla matricula de auto

Publicado por evo3126 (2 intervenciones) el 10/10/2017 03:37:45
hola que tal, a ver si me pueden ayudar estoy necesitando y no se como hacerlo, tengo que hacer lo siguiente.

es un programa que registra matriculas, el tema es que el usuario ingresa una matricula es decir:

ejemplo: ABC123

Contiene tres letras y tres numero.
La idea es que el usuario ingresa eso y la función debería controlar que lo que el usuario ingreso sea tres letras y tres números y no algo distinto y la guarde luego de controlar que todo esta bien.


Agradezco toda ayuda.

saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

función controla matricula de auto

Publicado por juancho (2 intervenciones) el 03/11/2017 02:07:09
Lo que podes hacer es chequear en el evento keypress, y según el char ingresado, si es número o letra. En cada caso verificarlo y hacer que el evento se valide o no:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//Ejemplo:
txtMatricula.MaxLength = 6;
 
private void txtMatricula_KeyPress(object sender, KeyPressEventArgs e)
{
    string _texto = txtMatricula.Text;
    char[] _letras = { 'A', 'B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','\b',
        'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','k','r','s','t','u','v','w','x','y','z' };
    char[] _numeros = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','\b' };
    switch (_texto.Length)
    {
        case 0:
        case 1:
        case 2:
            if (!_letras.Contains(e.KeyChar))
                e.Handled = true;
            break;
        case 3:
        case 4:
        case 5:
        case 6:
            if (!_numeros.Contains(e.KeyChar))
                e.Handled = true;
            break;
 
    }
}
De esta manera vas a tener una caja de texto con un largo total de 6 caracteres, los tres primeros letras y los tres últimos números.

Otra forma mucho mas fácil es utilizar un masked textbox, en el cual solamente tendrías que definir el formato de la mascara:

//Ejemplo:
txtmatricula2.Mask = "LLL000";


Googleando se encuentra una lista de caracteres que definen la mascara de entrada:

Here is a list and description of masking characters.
0 – Digit, required. Value between 0 and 9.
9 – Digit or space, optional.
# - Digit or space, optional. If this position is blank in the mask, it will be rendered as a space in the Text property.
L - Letter, required. Restricts input to the ASCII letters a-z and A-Z.
? - Letter, optional. Restricts input to the ASCII letters a-z and A-Z.
& - Character, required.
C - Character, optional. Any non-control character.
A - Alphanumeric, required.
a - Alphanumeric, optional.
. - Decimal placeholder.
, - Thousands placeholder.
: - Time separator.
/ - Date separator.
$ - Currency symbol.
< - Shift down. Converts all characters that follow to lowercase.
> - Shift up. Converts all characters that follow to uppercase.
| - Disable a previous shift up or shift down.
\ - Escape. Escapes a mask character, turning it into a literal. "\\" is the escape sequence for a backslash.
All other characters - Literals. All non-mask elements will appear as themselves within MaskedTextBox. Literals always occupy a static position in the mask at run time, and cannot be moved or deleted by the user.

Espero que te haya sido de ayuda.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

función controla matricula de auto

Publicado por evo3126 (2 intervenciones) el 03/11/2017 18:17:13
Muchas gracias me re sirvió.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad