C sharp - condicion de dos caracteres

 
Vista:

condicion de dos caracteres

Publicado por ronald (1 intervención) el 25/05/2018 18:29:18
Con un scaner estoy leyendo valores en un textbox. Utilizo un metodo el cual toda lectura que toma le quita el 3S(si la lectura lo trae) y deja lo restante del codigo. Lo que necesito es declarar una condicion que lea el codigo en el textbox y lo analice, una vez leido, si el codigo no trae en sus dos primeros caracteres 3S, que limpie el
textbox, si este trae 3S lo lee y le quita el 3S y deja lo restante de caracteres.Lo unico que necesito es que no me acepte valores que no traigan 3S.
Este metodo lo hago en el evento text changed.
Este codigo lo unico que hace es que cuando comienzan con 3S se lo quita y deja el restante de caracteres.

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
private void opcion1(TEXTBOX txt)
{
    string s = txt.Text;
    string a = "3S";
    string b = "3s";
 
    if (s != "")
    {
        if (s.Length >= 2)
        {
            if (s.StartsWith(a) || s.StartsWith(b))
            {
                if (s.Length > 2)
                {
                    //MessageBox.Show(s.Length.ToString());
                    s = s.Substring(2);
                }
                else
                    s = "";
            }
 
            txt.Text = s;
        }
    }
 
}
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 879
Oro
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

condicion de dos caracteres

Publicado por Wilfredo Patricio Castillo (413 intervenciones) el 27/05/2018 01:08:00
Eso sería fácil de hacer utilizando el evento Enter del textbox, mas o menos así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private void textBox1_Enter(object sender, EventArgs e)
{
        string s = textBox1.Text;
        string result = null;
        if (!String.IsNullOrEmpty(s))
        {
            if (!s.StartsWith("3s") && !s.StartsWith("3S") || s.Length<=2)
            {
                  textBox1.Clear();
             }
             else
             {
                  if (s.Length > 2)
                  {
                      result = s.Substring(2);
                      textBox1.Text = result;
                   }
              }
       }
}

Además, es MUY IMPORTANTE para que funcione, que en el método donde capturas los datos, al enviar los datos al textbox, le envíes el foco al textbox1 en este caso, eso es tan sencillo como decirle al momento de asignar los datos.

1
2
textbox1.text="datos desde el lector";
textbox1.focus();

Con eso no deberías tener problemas.


Saludos cordiales,
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