none
Hacer este programa de una Web a un formulario Windows RRS feed

  • Pregunta

  • Hola:

    Estoy haciendo este formulario Web que se ve bien en el navegador Internet Explorer.

    http://www.hmsistemas.es/shop/catalog/calculadora_seccion.php

    Quiero hacer de la mejor forma este programa en el cual el diseño lo tengo hecho.

    Nombre de los componentes que puse.

    A pesar que en las propiedades del comboBox están rellenados los valores, tiene que verse al ejecutar el programa.

    ¿Alguna idea de completar el programa?

    No quiero que me salga cálculos raros.

    Saludos.


    http://electronica-pic.blogspot.com


    • Editado Metaconta jueves, 21 de marzo de 2019 23:29
    jueves, 21 de marzo de 2019 23:26

Respuestas

  • Hola

    ocupas un Diccionario y lo asignas a un ComboBox

    Dictionary<string, int> Items = new Dictionary<string, int>();
    Items.Add("Cobre", 56);
    Items.Add("Aluminio", 35);
    comboBox2.DataSource = Items.ToList();
    comboBox2.DisplayMember = "Key";
    comboBox2.ValueMember = "Value";
    comboBox1.SelectedIndex = 1;

    y en el evento

    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        int material = 0;
        int.TryParse(comboBox2.SelectedValue.ToString(), out material);
        // y material es la constante a utilizar
    }
    

    • Propuesto como respuesta Carlos_Ruiz_M viernes, 22 de marzo de 2019 15:55
    • Marcado como respuesta Metaconta lunes, 25 de marzo de 2019 3:34
    viernes, 22 de marzo de 2019 13:39
  • Visita https://www.rsoftware.es/Products/Others y échale un vistazo al software 'SectCalc', que está en el primer artículo de ese enlace.

    Si es más o menos lo que necesitas, estoy dispuesto a proporcionarte el código fuente.

    Un saludo.

    • Marcado como respuesta Metaconta lunes, 25 de marzo de 2019 3:34
    viernes, 22 de marzo de 2019 8:55
  • Hola

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
           
            Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
            private void Form1_Load(object sender, EventArgs e)
            {
                
    
                // Conductor.
                
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;
    
                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;
    
                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
                textBox_Longitud.Text = "0";
                textBox_Amperes.Text = "0";
    
            }
    
            private void calc()
            {
                decimal tipoConductor = 0;
                decimal.TryParse(comboBox_Conductor.SelectedValue.ToString(), out tipoConductor);
               
                decimal tencion = 0;
                decimal.TryParse(comboBox_Tension.SelectedValue.ToString(), out tencion);
                
                decimal cdt = 0;
                decimal.TryParse(comboBox_Cdt.SelectedValue.ToString(), out cdt);
    
                Decimal l = 0;
                decimal.TryParse(textBox_Longitud.Text, out l);
                decimal Amp = 0;
                decimal.TryParse(textBox_Amperes.Text, out Amp);
                textBox_Caida_tension.Text = (tencion*(cdt/100)).ToString();
                if (tipoConductor != 0 && (tencion * (cdt / 100)) != 0)
                {
                    textBox_Conductor.Text = (2 * l * Amp / (tipoConductor * (tencion * (cdt / 100)))).ToString();
                }
                
            }
            private void button1_Click(object sender, EventArgs e)
            {
                calc();
            }

    • Marcado como respuesta Metaconta lunes, 25 de marzo de 2019 3:33
    domingo, 24 de marzo de 2019 12:08

Todas las respuestas

  • Hola

    para que los combos inicien con algun valor  utiliza

    comboBox.SelectedIndex = 0;

    Para los calculos electricos tienes que saber de electricidad

    y se calcula por Ampacidad y caida de tencion

    despues se secciona el mejor conductor

    ademas te faltaria el factor de potencia, tipo de voltage

    • Editado Marti Llam viernes, 22 de marzo de 2019 4:45
    • Propuesto como respuesta Carlos_Ruiz_M viernes, 22 de marzo de 2019 15:55
    viernes, 22 de marzo de 2019 4:44
  • Buenas:

    Me funiona la parte de la carga de los comboBox. Muchas gracias. ;)

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace CalculadoraDeSeccionDeConductores_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                comboBox_Conductor.SelectedIndex = 0;
                comboBox_Tension.SelectedIndex = 0;
                comboBox_Cdt.SelectedIndex = 0;
            }
        }
    }

    En el primer comoBox debo tener claro que para el cobre 56 ,aluminio 35.

    Así que en el fondo, el Cobre es un número constante que es simplemente un 56 si lo elijo.

    ¿Cómo se hace?

    El programa lo haré poco a poco.

    Saludos.


    http://electronica-pic.blogspot.com

    • Propuesto como respuesta Carlos_Ruiz_M viernes, 22 de marzo de 2019 15:55
    • Votado como útil Carlos_Ruiz_M viernes, 22 de marzo de 2019 15:55
    viernes, 22 de marzo de 2019 5:50
  • Visita https://www.rsoftware.es/Products/Others y échale un vistazo al software 'SectCalc', que está en el primer artículo de ese enlace.

    Si es más o menos lo que necesitas, estoy dispuesto a proporcionarte el código fuente.

    Un saludo.

    • Marcado como respuesta Metaconta lunes, 25 de marzo de 2019 3:34
    viernes, 22 de marzo de 2019 8:55
  • Hola

    ocupas un Diccionario y lo asignas a un ComboBox

    Dictionary<string, int> Items = new Dictionary<string, int>();
    Items.Add("Cobre", 56);
    Items.Add("Aluminio", 35);
    comboBox2.DataSource = Items.ToList();
    comboBox2.DisplayMember = "Key";
    comboBox2.ValueMember = "Value";
    comboBox1.SelectedIndex = 1;

    y en el evento

    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        int material = 0;
        int.TryParse(comboBox2.SelectedValue.ToString(), out material);
        // y material es la constante a utilizar
    }
    

    • Propuesto como respuesta Carlos_Ruiz_M viernes, 22 de marzo de 2019 15:55
    • Marcado como respuesta Metaconta lunes, 25 de marzo de 2019 3:34
    viernes, 22 de marzo de 2019 13:39
  • Hola:

    Por ahora me sale un error. Ejecuta bien, pero si pulso el botón calcular me sale esto.

    El código fuente es este.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace CalculadoraDeSeccionDeConductores_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                // Conductor.
                Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;
    
                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;
    
                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
            }
    
            private void ComboBox_Conductor_SelectedIndexChanged(object sender, EventArgs e)
            {
                double.TryParse(comboBox_Conductor.SelectedValue.ToString(), out double conductor);
            }
    
            private void ComboBox_Tension_SelectedIndexChanged(object sender, EventArgs e)
            {
                double.TryParse(comboBox_Tension.SelectedValue.ToString(), out double tension);
            }
    
            private void ComboBox_Cdt_SelectedIndexChanged(object sender, EventArgs e)
            {
                double.TryParse(comboBox_Cdt.SelectedValue.ToString(), out double cdt);
            }
    
            private void button_Calcular_Click(object sender, EventArgs e)
            {
                // Cálculo.
                //2 * L * I / (56 * %)
    
                double L = Convert.ToDouble(textBox_Longitud.Text);
                double I = Convert.ToDouble(textBox_Amperios.Text);
                double cobreOAluminio = Convert.ToDouble(comboBox_Conductor.Text);
                double cdtPorcentaje = Convert.ToDouble(comboBox_Cdt.Text);
                double resultado = 2 * L * I / (cobreOAluminio * cdtPorcentaje);
                textBox_Caida_tension.Text = resultado.ToString();
            }
        }
    }
    

    Saludos.


    http://electronica-pic.blogspot.com

    sábado, 23 de marzo de 2019 10:38
  • Hola

    y puedes eliminar el evento

    no le das ningun uso

     private void button_Calcular_Click(object sender, EventArgs e)
            {
                // Cálculo.
                //2 * L * I / (56 * %)
    
                double L = Convert.ToDouble(textBox_Longitud.Text);
                double I = Convert.ToDouble(textBox_Amperios.Text);
                double cobreOAluminio = 0;
                double.tryParse(comboBox_Conductor.SelectedValue.ToString(),out cobreOAluminio);
                double cdtPorcentaje = Convert.ToDouble(comboBox_Cdt.Text);
                double resultado = 2 * L * I / (cobreOAluminio * cdtPorcentaje);
                textBox_Caida_tension.Text = resultado.ToString();
            }

    sábado, 23 de marzo de 2019 13:15
  • Quiero mejorar todo el programa.

    A parte de eso en Tensión no se usa, ni caida de tensión.

    Programa completo hasta ahora.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;

    namespace CalculadoraDeSeccionDeConductores_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                // Conductor.
                Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;

                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;

                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
            }

            private void button_Calcular_Click(object sender, EventArgs e)
            {
                // Cálculo.
                //2 * L * I / (56 * %)

                double L = Convert.ToDouble(textBox_Longitud.Text);
                double I = Convert.ToDouble(textBox_Amperios.Text);
                double cobreOAluminio = 0;
                double.TryParse(comboBox_Conductor.SelectedValue.ToString(), out cobreOAluminio);
                double cdtPorcentaje = Convert.ToDouble(comboBox_Cdt.SelectedValue.ToString());
                double resultado = 2 * L * I / (cobreOAluminio * cdtPorcentaje);
                textBox_Seccion_condutor.Text = resultado.ToString();
            }
        }
    }


    http://electronica-pic.blogspot.com


    • Editado Metaconta sábado, 23 de marzo de 2019 14:18
    sábado, 23 de marzo de 2019 14:17
  • Hola

    para poder hace esta calculadora de conductores primero debes saber ¡¡¡ELECTRICIDAD!!!

    tensión y caída de tensión si se ocupan pero como no sabes electricidad no sabes donde están y la calculadora

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            Calculos calculos;
            Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
            private void Form1_Load(object sender, EventArgs e)
            {
                calculos = new Calculos();
    
                // Conductor.
                
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;
    
                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;
    
                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
                textBox_Longitud.Text = "0";
                textBox_Amperes.Text = "0";
    
            }
    
            
            private void calc()
            {
                decimal tipoConductor = 0;
                decimal.TryParse(comboBox_Conductor.SelectedValue.ToString(), out tipoConductor);
               
                decimal tencion = 0;
                decimal.TryParse(comboBox_Tension.SelectedValue.ToString(), out tencion);
                
                decimal cdt = 0;
                decimal.TryParse(comboBox_Cdt.SelectedValue.ToString(), out cdt);
    
                Decimal l = 0;
                decimal.TryParse(textBox_Longitud.Text, out l);
                decimal Amp = 0;
                decimal.TryParse(textBox_Amperes.Text, out Amp);
                calculos.Longitud = l;
                calculos.Amperes = Amp;
                textBox_Caida_tension.Text = (tencion*(cdt/100)).ToString();
                if (tipoConductor != 0 && (tencion * (cdt / 100)) != 0)
                {
                    textBox_Conductor.Text = (2 * l * Amp / (tipoConductor * (tencion * (cdt / 100)))).ToString();
                }
                
            }
            private void button1_Click(object sender, EventArgs e)
            {
                calc();
            }

    ser algo asi 

    sábado, 23 de marzo de 2019 16:02
  • Me d a er ror.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace CalculadoraDeSeccionDeConductores_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            Calculos calculos;
            Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
    
            private void Form1_Load(object sender, EventArgs e)
            {
                calculos = new Calculos();
    
                // Conductor.
    
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;
    
                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;
    
                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
                textBox_Longitud.Text = "0";
                textBox_Amperios.Text = "0";
            }
    
            private void Calc()
            {
                decimal tipoConductor = 0;
                decimal.TryParse(comboBox_Conductor.SelectedValue.ToString(), out tipoConductor);
    
                decimal tencion = 0;
                decimal.TryParse(comboBox_Tension.SelectedValue.ToString(), out tencion);
    
                decimal cdt = 0;
                decimal.TryParse(comboBox_Cdt.SelectedValue.ToString(), out cdt);
    
                Decimal l = 0;
                decimal.TryParse(textBox_Longitud.Text, out l);
                decimal Amp = 0;
                decimal.TryParse(textBox_Amperios.Text, out Amp);
                calculos.Longitud = l;
                calculos.Amperios = Amp;
                textBox_Caida_tension.Text = (tencion * (cdt / 100)).ToString();
                if (tipoConductor != 0 && (tencion * (cdt / 100)) != 0)
                {
                    textBox_Seccion_condutor.Text = (2 * l * Amp / (tipoConductor * tencion * (cdt / 100))).ToString();
                }
    
            }
    
            private void button_Calcular_Click(object sender, EventArgs e)
            {
                // Cálculo.
                //2 * L * I / (56 * %)
    
                Calc();
            }
    
        }
    }

    Gravedad    Código    Descripción    Proyecto    Archivo    Línea    Estado suprimido
    Error    CS1061    "Calculos" no contiene una definición para "Longitud" ni se encuentra ningún método de extensión "Longitud" accesible que acepte un primer argumento del tipo "Calculos" (¿falta alguna directiva using o una referencia de ensamblado?)    CalculadoraDeSeccionDeConductores_cs    C:\Users\Usuario\Documents\Visual Studio 2017\Projects\CalculadoraDeSeccionDeConductores_cs\CalculadoraDeSeccionDeConductores_cs\Form1.cs    78    Activo


    http://electronica-pic.blogspot.com

    sábado, 23 de marzo de 2019 21:24
  • Hola

    es una clase que esta en mi ensamblado solo elimina calculos de la rutina y listo

    domingo, 24 de marzo de 2019 1:16
  • Buenas:

    ¿Te refieres de esto...

                calculos.Longitud = l;
                calculos.Amperios = Amp;

    A esto otro?

    Longitud = l;
    Amperios = Amp;
    Tampoco sirve.


    http://electronica-pic.blogspot.com


    • Editado Metaconta domingo, 24 de marzo de 2019 8:34
    domingo, 24 de marzo de 2019 8:34
  • Hola

     public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
           
            Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
            private void Form1_Load(object sender, EventArgs e)
            {
                
    
                // Conductor.
                
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;
    
                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;
    
                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
                textBox_Longitud.Text = "0";
                textBox_Amperes.Text = "0";
    
            }
    
            private void calc()
            {
                decimal tipoConductor = 0;
                decimal.TryParse(comboBox_Conductor.SelectedValue.ToString(), out tipoConductor);
               
                decimal tencion = 0;
                decimal.TryParse(comboBox_Tension.SelectedValue.ToString(), out tencion);
                
                decimal cdt = 0;
                decimal.TryParse(comboBox_Cdt.SelectedValue.ToString(), out cdt);
    
                Decimal l = 0;
                decimal.TryParse(textBox_Longitud.Text, out l);
                decimal Amp = 0;
                decimal.TryParse(textBox_Amperes.Text, out Amp);
                textBox_Caida_tension.Text = (tencion*(cdt/100)).ToString();
                if (tipoConductor != 0 && (tencion * (cdt / 100)) != 0)
                {
                    textBox_Conductor.Text = (2 * l * Amp / (tipoConductor * (tencion * (cdt / 100)))).ToString();
                }
                
            }
            private void button1_Click(object sender, EventArgs e)
            {
                calc();
            }

    • Marcado como respuesta Metaconta lunes, 25 de marzo de 2019 3:33
    domingo, 24 de marzo de 2019 12:08
  • Hola:

    Me fuinciona.

    Dejo lo que Visual Studio Community 2017 me corrige en los códigos. Me pregunto como srá en el 2019 cuando llegue.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;

    namespace CalculadoraDeSeccionDeConductores_cs
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                // Conductor.
                Dictionary<string, double> ItemsConductor = new Dictionary<string, double>
                {
                    { "Cobre", 56 },
                    { "Aluminio", 35 }
                };
                comboBox_Conductor.DataSource = ItemsConductor.ToList();
                comboBox_Conductor.DisplayMember = "Key";
                comboBox_Conductor.ValueMember = "Value";
                comboBox_Conductor.SelectedIndex = 0;

                // Tensión.
                Dictionary<string, double> ItemsTension = new Dictionary<string, double>
                {
                    { "12 V.", 12 },
                    { "24 V.", 24 },
                    { "48 V.", 48 }
                };
                comboBox_Tension.DataSource = ItemsTension.ToList();
                comboBox_Tension.DisplayMember = "Key";
                comboBox_Tension.ValueMember = "Value";
                comboBox_Tension.SelectedIndex = 0;

                // Cdt.
                Dictionary<string, double> ItemsCdt = new Dictionary<string, double>
                {
                    { "0.5 %", 0.5 },
                    { "1 %", 1 },
                    { "3 %", 3 },
                    { "5 %", 5 }
                };
                comboBox_Cdt.DataSource = ItemsCdt.ToList();
                comboBox_Cdt.DisplayMember = "Key";
                comboBox_Cdt.ValueMember = "Value";
                comboBox_Cdt.SelectedIndex = 0;
                textBox_Longitud.Text = "0";
                textBox_Amperios.Text = "0";
            }

            private void button_Calcular_Click(object sender, EventArgs e)
            {
                decimal.TryParse(comboBox_Conductor.SelectedValue.ToString(), out decimal tipoConductor);
                decimal.TryParse(comboBox_Tension.SelectedValue.ToString(), out decimal tencion);
                decimal.TryParse(comboBox_Cdt.SelectedValue.ToString(), out decimal cdt);
                decimal.TryParse(textBox_Longitud.Text, out decimal l);
                decimal.TryParse(textBox_Amperios.Text, out decimal Amp);
                textBox_Caida_tension.Text = (tencion * (cdt / 100)).ToString();

                if ((tipoConductor != 0) && ((tencion * (cdt / 100)) != 0))
                {
                    textBox_Seccion_condutor.Text = (2 * l * Amp / (tipoConductor * tencion * (cdt / 100))).ToString();
                }
            }
        }
    }

    Gracias a todos.


    http://electronica-pic.blogspot.com


    • Editado Metaconta lunes, 25 de marzo de 2019 3:35
    lunes, 25 de marzo de 2019 3:33