Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - PROFENIX

#11
me e puesto a añadir los nuevos textbox y demas cosas pero cuando e añadido lo que serian los billetes de 10 no se porque demonios no hace la operacion correspondiente.

Código (vbnet) [Seleccionar]
Public Class Form1

    Private Inicializado As Boolean

    Private Sub txtBillete50_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBillete50.TextChanged, txtBillete20.TextChanged, txtBillete10.TextChanged, txtBillete5.TextChanged, txtMonedas2.TextChanged, txtMonedas1.TextChanged, txtMonedas050.TextChanged, txtMonedas020.TextChanged, txtMonedas010.TextChanged, txtMonedas005.TextChanged, txtMonedas002.TextChanged, txtMonedas001.TextChanged
        sender.backcolor = Color.White
        txtTotal.Visible = True
    End Sub

    Private Sub txtBillete50_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBillete50.Validated, txtBillete20.Validated, txtBillete10.Validated, txtBillete5.Validated, txtMonedas2.Validated, txtMonedas1.Validated, txtMonedas050.Validated, txtMonedas020.Validated, txtMonedas010.Validated, txtMonedas005.Validated, txtMonedas002.Validated, txtMonedas001.Validated
        sender.backcolor = Color.White
        txtTotal.Visible = True
    End Sub

    Private Sub txtBillete50_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtBillete50.Validating
        Dim v As UShort  'UInt16 entero de 16 bits (valor en el rango: 0-65536)
        ' si admite un valor negativo, cambia al tipo short (int16)

        If UShort.TryParse(txtBillete50.Text, v) = False Then
            e.Cancel = True
            Call MessageBox.Show("No puede tomarse como un numero el valor para 'billete de 50'.", "Error: No es un numero.", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            'txtImporte50.Text ="0"
        Else
            txtImporte50.Text = (v * 50).ToString
        End If
    End Sub

    Private Sub txtBillete20_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtBillete20.Validating
        Dim v As UShort
        If UShort.TryParse(txtBillete20.Text, v) = False Then
            e.Cancel = True
            Call MessageBox.Show("No puede tomarse como un numero el valor para 'billete de 20'.", "Error: No es un numero.", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
            txtImporte20.Text = (v * 20).ToString
        End If
    End Sub

    Private Sub txtBillete10_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
        Dim v As UShort
        If UShort.TryParse(txtBillete10.Text, v) = False Then
            e.Cancel = True
            Call MessageBox.Show("No puede tomarse como un numero el valor para 'billete de 10'.", "Error: No es un numero.", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
            txtImporte10.Text = (v * 10).ToString
        End If
    End Sub

    Private Sub Totalizar() Handles txtImporte50.TextChanged, txtImporte20.TextChanged, txtImporte10.TextChanged
        Dim CantidadTotal As Single  ' entero de 32 bits...

        If (Inicializado = True) Then
            CantidadTotal = 0
            CantidadTotal += Single.Parse(txtImporte50.Text)
            CantidadTotal += Single.Parse(txtImporte20.Text)
            CantidadTotal += Single.Parse(txtImporte10.Text)

            txtTotal.Text = CantidadTotal.ToString
        End If
    End Sub
#12
Cita de: tincopasan en 25 Diciembre 2018, 07:24 AM
hay varias formas de solucionar ese problema, el más facil es asignarle el valor 0 a los textbox, porque sino no convierte una cadena con valor nulo a entero, otra forma sería verificar que si el textbox tiene un valor asignado haga la conversión.En resumen en tiempo de diseño donde dice text(en las propiedades)darle un valor 0   

gracias con poner el 0 se me soluciono el problema.

lo que me gustaría saber ahora es que debería de poner para números con coma osea para monedas como seria 0,50 0,20, 0,10, 0,05 0,02 o 0,01

Código (vbnet) [Seleccionar]
Private Sub txtBillete5_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtBillete5.Validating
        Dim v As UShort
        If UShort.TryParse(txtBillete5.Text, v) = False Then
            e.Cancel = True
            Call MessageBox.Show("No puede tomarse como un numero el valor para 'billete de 5'.", "Error: No es un numero.", MessageBoxButtons.OK, MessageBoxIcon.Warning)
        Else
            txtImporteX5.Text = (v * 5).ToString
        End If
    End Sub


porque si pongo en txtImporteX5.Text = (v * 5).ToString le pongo v * 0,05 me lo da como erroneo
#14
he hecho el mismo diseño y un copia y pega del código para llegar a entenderlo pero me salta un error



para no hacer 33 capturas a los textbox le e puesto el mismo nombre en el text que en el diseño por si e cometido algún error con tu explicación el cual no me doy cuenta
#15
hola antes que nada decir que yo de programación no tengo ni idea. pues a ver mi intención es hacer un mini programa que no necesite instalación que una vez lo compiles sea un simple exe, entonces necesito que alguien que sepa me diga que debería de usar y yo ya me buscaría la vida buscando código y demás por hay.

como ya he dicho de programación no se nada y después de llevarme un rato haciendo el diseño en el visual basic del excel me entero que no podría compilar lo que llevaba hecho para hacerlo funcionar sin que necesitase el excel en el ordenador donde lo llevase. entonces antes de cometer el mismo error, pues e pensado en preguntar a gente que sepa de la materia, para no volver a perder el tiempo.

a continuación os enseño lo que había hecho en visual basic



bien como podréis ver no es nada del otro mundo, la intención de este programa es que cuando metas las cantidades el programa te lo multiplique por los billetes y monedas que tiene representado a su izquierda, este resultado te lo enseñe en importe el cual no puedas tocar me refiero que no puedas modificar por otras cantidades o borrar y abajo donde pone total te lo sume y haga lo mismo solo mostrarte el resultado sin que puedas modificar o borrar la cantidad que te de.

aquí tenéis en excel hecho lo que quiero hacer, por si no entendéis lo que intento explicar

https://www.justbeamit.com/vgudp

pues eso me gustaría hacer que fuese un exe y que no necesite de instalación, ya que donde se ejecutaría es un PC antiguo sin acceso a internet y al que tampoco se le puede instalar cosas.

entonces en que programa hago de nuevo el diseño, programo el tema de las multiplicaciones y la suma y que una vez lo compile quede en un simple exe