C sharp - Clase

 
Vista:

Clase

Publicado por Federico (1 intervención) el 15/02/2019 03:27:12
Hola a todos, estoy programando en tres capas, en la segunda tengo entre otras una clase con el nombre nOperadores con el sig. codigo para validar numeros de CUIT y CUIL en un TextBox ubicado en un formulario de la tercer capa.

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
28
29
30
31
32
public static int CalcularDigitoCuit(string cuit)
{
    int[] mult = new[] { 5, 4, 3, 2, 7, 6, 5, 4, 3, 2 };
    char[] nums = cuit.ToCharArray();
    int total = 0;
 
    for (int i = 0; i < mult.Length; i++)
    {
        total += int.Parse(nums[i].ToString()) * mult[i];
    }
    var resto = total % 11;
    return resto == 0 ? 0 : resto == 1 ? 9 : 11 - resto;
}
 
public static bool ValidarCuit(string cuit)
{
    if (cuit == null)
    {
        return false;
    }
    cuit = cuit.Replace("-", string.Empty);
    if (cuit.Length != 11)
    {
        return false;
    }
    else
    {
        int calculado = CalcularDigitoCuit(cuit);
        int digito = int.Parse(cuit.Substring(10));
        return calculado == digito;
    }
}

ahora en el formulario puse el sig. codigo:

1
2
3
4
private void validarCUIT()
{
    nOperadores.ValidarCuit(txtNumerodoc.Text);
}

y en el evento KeyPress del TextBox lo sig.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void txtNumerodoc_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((int)e.KeyChar == (int)Keys.Enter)
    {
        this.validarCUIT();
        this.txtContacto.Focus();
    }
    else
    {
        if ((int)e.KeyChar == (int)Keys.Escape)
        {
            this.cbTipodoc.Focus();
        }
    }
}

No me tira ningun error pero no funciona, alguien me podria decir donde tengo el error. seguramente es que estoy llamando mal a la clase pero no se realmente como hacerlo.

Muchas gracias de antemano
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

Clase

Publicado por Nacho (115 intervenciones) el 15/02/2019 15:00:14
Para hacer un programa es imprescindible saber debuggear. Si pones un breakpoint en el delegado txtNumerodoc_KeyPress verás que nunca se ejecuta cuando pulsas enter o escape.
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