Foros del Web » Programación para mayores de 30 ;) » .NET »

Leer Codigo de Barras de un TextBox C#

Estas en el tema de Leer Codigo de Barras de un TextBox C# en el foro de .NET en Foros del Web. Buenos dias, Ante todo felicitaciones por el buen hacer del foro y de muchos de los apuros que me ha sacado a la hora de ...
  #1 (permalink)  
Antiguo 10/08/2011, 02:17
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación Leer Codigo de Barras de un TextBox C#

Buenos dias,

Ante todo felicitaciones por el buen hacer del foro y de muchos de los apuros que me ha sacado a la hora de programar, ya que, aunque ya he hecho pinitos en el tema, sigo siendo una aprendiz de toda esta nueva tecnología. Sin más voy al tema.

La cuestión es que tengo un proyecto Windows Form en Visual Studio 2008 en C#. Pues bien tengo un textbox multiline y un label. Y lo que pretendo hacer es lo siguiente, introducir en el txtBOX el código de barras leido mendiante una pistola. Una vez leido el código el cursor se me va a la siguiente linea debido al INTRO que introducide solo y quiero que por cada codigo de barras leido, me inserte en el label el resultado de comprobar si este esta en una lista o array o base de datos (Esto ultimo aun no lo tengo definido, de momento estoy probando con un valor a capón)

Mi problema es el siguiente que no puedo coger el valor 1234567890 que me aparece porque va introduciendolo de esta forma 1 12 123 1234 y no consigo obtener en una variable el valor entero.

Adjunto el codigo que estoy utilizando, EL tema me corre prisa, ya que tengo que tener terminado el proyecto para ayer jajaja.. Asique a ver si hay suerte y me podeis ayudar, ya que de lo que he estado leyendo por aqui no encuentro más solución.

private void codigo_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (e.KeyChar == Convert.ToChar('\r'))
{

// MessageBox.Show(textbox1.Text);


}
}

private bool comparaCodi(string codigo)
{


if (codigo == "1234567890")
{
return true;

}
else
{

return false;
}


}

private void textBox1_TextChanged(object sender, EventArgs e)
{

string leido = textBox1.Text;
{


if (comparaCodi(textBox1.Text) == true)
{

label1.Text = "Tarjeta OK";


}
else
{

label1.Text = "Tarjeta No VALIDA";


}
}

Muchisiiimas gracias!!!
  #2 (permalink)  
Antiguo 10/08/2011, 02:47
 
Fecha de Ingreso: agosto-2011
Mensajes: 14
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Leer Codigo de Barras de un TextBox C#

Buenos días:

Tu capturas el valor del textbox en el evento textChaged y claro,cade vez que escriba un caracter te va a entrar en ese evento.

Para conseguir el valor entero de lo que escriba en el textbox debes capturarlo en el evento keyUp. Cuando la tecla que se envie sea el enter... llamar a la funcion de comprobar codigo.

Ejemplo:

private void txtBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show(txtBox.Text, "Campo del textBox");
//Hacer lo que se quiera,en tu caso llamar a una funcion
comparaCodi(textBox.Text)

}
}
  #3 (permalink)  
Antiguo 10/08/2011, 06:52
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Leer Codigo de Barras de un TextBox C#

hola cricrina19,

Muchas gracias por responder, solo una pequeña duda, el evento textchanged lo lanzo y si que controlo cuando se produce, pero mi duda ahora es si yo utilizo el codigo del key_up al igual que el que tengo de key pressed lo pongo en mi codigo y ya esta?? O lo tengo que lanzar o cambiar alguna cosa más para que funcione?? Es que aun ando un poco perdida con esto de los eventos.

Muchas gracias!!
  #4 (permalink)  
Antiguo 10/08/2011, 08:38
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Leer Codigo de Barras de un TextBox C#

Hola de nuevo,

He estado probando el código y ahora si que me lanza el evento al leer del lector, pero ocurre una cosa. En el MessageBox del codigo me sale la primera vez 1234567890 como el codigo leido, bien pero la segunda me aparece así
1234567890
2563654546

Por lo que la variable txt o en su defecto el textbox me coge todo el contenido y no la última lectura de código, es posible de alguna forma que me coja solo lo último ingresado?? Actualmente tengo así el código.

public partial class Calidad : Form
{
public Calidad()
{
InitializeComponent();
InitializaeEvents();
}

private void InitializaeEvents()
{
this.textBox1.KeyPress += new KeyPressEventHandler(txt_KeyPress);

}

private string comparaCodi(string codigo)
{
if (codigo == "1234567890")
{
return "Tarjeta Valida";

}
else
{
return "Tarjeta NO Valida";
}

}
private void txt_KeyPress(object sender, KeyPressEventArgs e)
{

TextBox txt = sender as TextBox;

if (e.KeyChar == (char)13)
{
MessageBox.Show(txt.Text, "Campo del textBox");

label1.Text = comparaCodi(txt.Text);

}
}

Muchas grcias de nuevo, y ojalá alguien me pueda ayudar.
  #5 (permalink)  
Antiguo 10/08/2011, 09:26
Avatar de othix  
Fecha de Ingreso: mayo-2011
Ubicación: Guatemala
Mensajes: 92
Antigüedad: 13 años
Puntos: 9
Respuesta: Leer Codigo de Barras de un TextBox C#

despues de MessageBox.Show(txt.Text, "Campo del textBox"); proba poner textBox1.Text=""
__________________
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."
  #6 (permalink)  
Antiguo 10/08/2011, 16:36
 
Fecha de Ingreso: agosto-2007
Mensajes: 26
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Leer Codigo de Barras de un TextBox C#

No entiendo porque utilizas un textbox multiline.

Lo que se me ocurre que podes hacer es lo siguiente:
utilizar el textbox sin multiline y hacer lo que dice othix de borrar el contenido del text despues de la validación

o utilizar el textbox sin multiline y agregar otro textbox donde vallas llenando en cada lectura los códigos históricos que ingresaron

o dejar el multiline y al string hacerle un split('\r') y obtener el ultimo resultado


Saludos
  #7 (permalink)  
Antiguo 11/08/2011, 01:53
 
Fecha de Ingreso: agosto-2011
Mensajes: 14
Antigüedad: 12 años, 9 meses
Puntos: 4
Respuesta: Leer Codigo de Barras de un TextBox C#

Hola sss1986.

Como bien dice xanubis, si quierse conservar todos los codigos que utilizas en el textbox debes hacer un split por el "\r" y coger el ultimo valor. Aquí te dejo un ejemplo a utilizar en el key_press cuando la tecla que pulse sea "enter"


string codigos = textBox1.text;
string[] arr = codigos.Split(r);
MessageBox.Show(codigos[arr.Length - 1]);


Espero que te sirva de ayuda. Un saludo
  #8 (permalink)  
Antiguo 18/08/2011, 05:35
 
Fecha de Ingreso: julio-2008
Mensajes: 13
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Leer Codigo de Barras de un TextBox C#

Muchas gracias,

Al final si lo conseguí quitando el multiline y recogiendo cada uno de los cogidos hasta el carater de intro, donde le mando a la funcion que compara.

Gracias de nuevo.

Saludos

Etiquetas: barras, textbox, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:10.