Hola, hice este programa que simula una caja registradora hecho en VB .NET, es bien sencilla, se pueden añadir y eliminar productos, y se paga por efectivo.
Consiste en un ListBox que tiene el contenido de la "boleta" de la compra, un Label que muestra los mensajes de error y un TextBox en el que se ingresan los comandos. Hice que todos los comandos sean de una letra. La lista es la siguiente (los comandos se ingresan en el TextBox):
- i: Inicia una nueva venta.
- a: Aparece un InputBox que pide el código del producto.
- d: Aparece un InputBox que pide el id del producto contando desde el primero a borrar (se cuenta desde el 1).
- r: Aparece una confirmación que pide si se cancela la venta actual.
- t: Muestra el total a pagar al momento de enviar el comando.
- p: Muestra un InputBox que pide el dinero a pagar y devuelve el vuelto (cambio) en la "boleta".
Se le podrían añadir otras cosas, como soporte de múltiples productos a la vez, impresión de la boleta, entre otras.
Oops, se me olvidó poner algo

, en el archivo Form1, en la vista Código, en el Sub TextBox1_Text Changed hay que cambiar el código.
Código:
Case "r"
If venta Then
TextBox1.Text = ""
If MsgBox("¿Desea cancelar la venta?", MsgBoxStyle.YesNo, "Cancelar venta") = MsgBoxResult.Yes Then
TextBox1.Text = ""
ListBox1.Items.Clear()
items = 0 ' <---- ESTO HAY QUE PONER
total = 0
venta = False
End If
Else
TextBox1.Text = ""
Label1.ForeColor = Color.Red
Label1.Text = "Operación inválida, presione 'i' antes de cancelar una venta."
End If
El enlace al archivo es este: [URL]http://www.mediafire.com/?3yw8bg1a6tgfdmz[/URL]
Si se rompe el enlace, avísenme para crear otro.
Así que les pido ayuda para mejorar mi programa.