none
Conversor de Unidades-Monedas en Windows Forms C# RRS feed

  • Pregunta

  • Hola comunidad, soy nuevo en el foro, agradecería muchísimo si me ayudaran en lo siguiente:

    Resulta que debo de programar un conversor de lo siguiente: Kilómetros-Millas (Viceversa),Kilogramos-Libras (Viceversa), Kilogramos-Kilómetros (Viceversa), en general todo con todo y luego De Pesos-Dolares (Viceversa), Euros-Pesos (Viceversa), Dolares-Euros (Viceversa), el proyecto lo estoy haciendo seguido de una calculadora la cual ya terminé, pero no he sido capaz por más que intento y veo vídeos en YouTube de empezar a hacer el converor, el diseño ya está. Todo el proyecto lo tengo en .cs y se que debo de iniciar a programar por el convertidor pero la verdad no se como hacerlo... Por favor si pueden me ayudan así sea a realizar la primera conversión y en viceversa, yo ya tomaré ese como ejemplo para hacer los demás.

    El TextBox lo denominé: (textPantalla), el ComboBox 1° lo denomine: (cbxEntrada), el 2° ComboBox lo denominé: (cbxSalida), luego esta el botón convertir que lo llame :(btnConvertir), el botón limpiar lo llame: (btnLimpiar) y por ultimo está el label que me va a mostrar el resultado que lo llame: textResultado.

    sábado, 12 de octubre de 2019 4:00

Todas las respuestas

  • Hola:
    En un Form como el de la imagen

    Copia y pega, el siguiente codigo

    Option Explicit On
    Option Strict On
    Imports System.ComponentModel
    Public Class FrmCopiar
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            cboEntrada.Items.Add(New AddItem("", 0))
            cboEntrada.Items.Add(New AddItem("Kilometro", 1000))
            cboEntrada.Items.Add(New AddItem("Milla", 1609))
            cboEntrada.SelectedIndex = -1
            cboSalida.Items.Add(New AddItem("", 0))
            cboSalida.Items.Add(New AddItem("Kilometro", 1000))
            cboSalida.Items.Add(New AddItem("Milla", 1609))
            cboSalida.SelectedIndex = -1
            btnLimpiar.Enabled = False
            btnConvertir.Enabled = True
        End Sub
        Private Sub btnConvertir_Click(sender As Object, e As EventArgs) Handles btnConvertir.Click
            If Me.ValidateChildren = False Then
                MessageBox.Show("Datos erroneos", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return
            End If
            If cboEntrada.SelectedIndex = cboSalida.SelectedIndex Then
                MessageBox.Show("NO pueden ser iguales", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return
            End If
            Dim Resultado As Double = (CInt(txtEntrada.Text) * CInt(DirectCast(cboEntrada.SelectedItem, AddItem).Clave)) / CInt(DirectCast(cboSalida.SelectedItem, AddItem).Clave)
            lblResultado.Text = Format(Resultado, "N4")
            btnLimpiar.Enabled = True
            btnConvertir.Enabled = False
        End Sub
        Private Sub btnLimpiar_Click(sender As Object, e As EventArgs) Handles btnLimpiar.Click
            cboEntrada.SelectedIndex = -1
            cboSalida.SelectedIndex = -1
            txtEntrada.Text = ""
            lblResultado.Text = ""
            btnLimpiar.Enabled = False
            btnConvertir.Enabled = True
        End Sub
        Private Sub txtEntrada_Validating(sender As Object, e As CancelEventArgs) Handles txtEntrada.Validating
            If txtEntrada.Text.Length = 0 Then
                e.Cancel = True
                Me.ErrorProvider1.SetError(txtEntrada, "Introduzca la Entrada")
            Else
                Me.ErrorProvider1.SetError(txtEntrada, Nothing)
            End If
        End Sub
        Private Sub txtEntrada_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtEntrada.KeyPress
            If Char.IsDigit(e.KeyChar) Then
                e.Handled = False
            ElseIf Char.IsControl(e.KeyChar) Then
                e.Handled = False
            Else
                e.Handled = True
            End If
        End Sub
        Private Sub cboEntrada_Validating(sender As Object, e As CancelEventArgs) Handles cboEntrada.Validating
            If cboEntrada.Text.Length = 0 Then
                e.Cancel = True
                Me.ErrorProvider1.SetError(cboEntrada, "Seleccione la Entrada")
            Else
                Me.ErrorProvider1.SetError(cboEntrada, Nothing)
            End If
        End Sub

        Private Sub cboSalida_Validating(sender As Object, e As CancelEventArgs) Handles cboSalida.Validating
            If cboSalida.Text.Length = 0 Then
                e.Cancel = True
                Me.ErrorProvider1.SetError(cboSalida, "Seleccione la Salida")
            Else
                Me.ErrorProvider1.SetError(cboSalida, Nothing)
            End If
        End Sub
    End Class

    Se hace uso de la siguiente clase
    Public Class AddItem
        Private moClave As Object
        Private msNombre As String
        Public Sub New(ByVal Nombre As String, ByVal Clave As Object)
            msNombre = Nombre
            moClave = Clave
        End Sub
        Public Property Clave() As Object
            Get
                Return moClave
            End Get
            Set(ByVal Value As Object)
                moClave = Value
            End Set
        End Property
        Public Property Nombre() As String
            Get
                Return msNombre
            End Get
            Set(ByVal Value As String)
                msNombre = Value
            End Set
        End Property
        Public Overrides Function ToString() As String
            Return msNombre
        End Function
    End Class

    Un saludo desde Bilbo
    Carlos
    • Propuesto como respuesta Pablo Rubio lunes, 14 de octubre de 2019 15:29
    domingo, 13 de octubre de 2019 5:57