Principales respuestas
Como realizar una operacionn dependiendo del textbox que use haciendo uso de una funcion

Pregunta
-
Hola amigos he estado realizando un pequeño programa que convierte de grados celsius a fahrenheit, lo que pasa es que quiero convertir de celsius a fahrenheit cuando escriba en el textbox correspondiente de celsius y que realize la operacion de fahrenheit a celsius cuando escriba en el textbox correspondiente y se logre funcionar con el mismo boton de fahrenheit quise logre hacerlo con un If pero lo mejor seria con una funcion les agradeceria mucho si me pudieran ayudar dejo parte del codigo
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 ConvertirCelsiusaFarenheitFormulario { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //**********************declarcion de variables double resultado,numero1; private void Limpiar() { txtCelsius.Clear(); txtFahrenheit.Clear(); } private void btnLimpiar_Click(object sender, EventArgs e) { Limpiar(); } private double Convertir(double num1) { resultado = (num1 * 9) / 5 + 32; return resultado; } private double InversaConversion(double num1) { resultado = (num1 - 32) * 5 / 9; return resultado; } private void btnConvertir_Click(object sender, EventArgs e) { try { if (txtCelsius.Text != "") { numero1 = Convert.ToDouble(txtCelsius.Text); resultado = Convertir(numero1); txtFahrenheit.Text = Convert.ToString(resultado); } else if (txtFahrenheit.Text != "") { numero1 = Convert.ToDouble(txtFahrenheit.Text); resultado = InversaConversion(numero1); txtCelsius.Text = Convert.ToString(resultado); } } catch (Exception) { MessageBox.Show("Introduce un numero en el cuadro de texto Grados Celsius.","Sistema de Conversion",MessageBoxButtons.OK,MessageBoxIcon.Information); txtCelsius.Focus(); } } private void Form1_Load(object sender, EventArgs e) { Limpiar(); txtCelsius.Focus(); } } }
- Editado Geardarko domingo, 26 de mayo de 2019 4:22 Error de sintaxis
Respuestas
-
Hola
intenta con esto
Solo manda los evento leave de los textbox esta funcion
private void TxtCelsius_TextChanged(object sender, EventArgs e) { try { double resultado, numero1; TextBox t = ((TextBox)sender); if (txtCelsius.Focused) { numero1 = Convert.ToDouble(txtCelsius.Text); resultado = Convertir(numero1); txtFahrenheit.Text = resultado.ToString("N2"); } else if (txtFahrenheit.Focused) { numero1 = Convert.ToDouble(txtFahrenheit.Text); resultado = InversaConversion(numero1); txtCelsius.Text = resultado.ToString("N2"); } } catch (Exception) { MessageBox.Show("Introduce un numero en el cuadro de texto Grados Celsius.", "Sistema de Conversion", MessageBoxButtons.OK, MessageBoxIcon.Information); txtCelsius.Focus(); } }
Espero te sirva
- Editado Marti Llam domingo, 26 de mayo de 2019 4:43
- Propuesto como respuesta Carlos_Ruiz_M lunes, 27 de mayo de 2019 14:42
- Marcado como respuesta Tonatiuh AbregoModerator martes, 4 de junio de 2019 14:25
Todas las respuestas
-
Hola
intenta con esto
Solo manda los evento leave de los textbox esta funcion
private void TxtCelsius_TextChanged(object sender, EventArgs e) { try { double resultado, numero1; TextBox t = ((TextBox)sender); if (txtCelsius.Focused) { numero1 = Convert.ToDouble(txtCelsius.Text); resultado = Convertir(numero1); txtFahrenheit.Text = resultado.ToString("N2"); } else if (txtFahrenheit.Focused) { numero1 = Convert.ToDouble(txtFahrenheit.Text); resultado = InversaConversion(numero1); txtCelsius.Text = resultado.ToString("N2"); } } catch (Exception) { MessageBox.Show("Introduce un numero en el cuadro de texto Grados Celsius.", "Sistema de Conversion", MessageBoxButtons.OK, MessageBoxIcon.Information); txtCelsius.Focus(); } }
Espero te sirva
- Editado Marti Llam domingo, 26 de mayo de 2019 4:43
- Propuesto como respuesta Carlos_Ruiz_M lunes, 27 de mayo de 2019 14:42
- Marcado como respuesta Tonatiuh AbregoModerator martes, 4 de junio de 2019 14:25
-
hola
Porque defines una variable global para un calculo local
private double Convertir(double num1) { double resultado = (num1 * 9) / 5 + 32; return resultado; }
si el calculo se realiza se devuelve como respuesta de la funcion para que la variable global?
>>quise logre hacerlo con un If pero lo mejor seria con una funcion
que buscas hacer en la funcion ? no entiendo que estas queriendo conseguir
Para mi el codigo como lo tienes es correcto, solo conviertes segun tengas un dato u otro, no veo que funcion buscas
private void btnConvertir_Click(object sender, EventArgs e) { try { double celsius = 0; if(double.TryParse(txtCelsius.Text, out celsius)) { double resultado = Convertir(celsius); txtFahrenheit.Text = resultado.ToString(); return; } double fahrenheit = 0; if(double.TryParse(txtFahrenheit.Text, out fahrenheit)) { double resultado = InversaConversion(fahrenheit); txtCelsius.Text = resultado.ToString(); return; } } catch (Exception) { MessageBox.Show("Introduce un numero en el cuadro de texto Grados Celsius.","Sistema de Conversion",MessageBoxButtons.OK,MessageBoxIcon.Information); txtCelsius.Focus(); } }
podrias convertir usando el TryParse() y el valor que obtengas aplicas la formula
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Carlos_Ruiz_M lunes, 27 de mayo de 2019 14:42
-
Antes que nada le agradezco la respuesta y me sirvió el código que escribió cambie el evento eso no me lo sabia es muy útil que cambie al momento de escribir ya tengo varias ideas para incluirlo en soluciones futuras.
En si lo que quería hacer que cuando diera click al botón convertir
Me saliera el resultado
Y al dar click al mismo botón pero escribiendo en textbox de farenheit
Me salga el resultado seria algo como a la inversa pero haciendo uso de un metodo y que en el vallan ambas operaciones dependiendo de que textbox este usando y se asigne al boton convertir, lo siento si no me explique bien
- Editado Geardarko viernes, 31 de mayo de 2019 4:50 Actualizacion
-
Muchas gracias por su respuesta le explico que quiero hacer ya que no me explique bien pues hice uso de una variable global fue porque estoy estudiando sobre funciones solo fue algo didáctico para poder comprender un poco mejor ya que soy nuevo en el mundo de la programación pero ya decía que asi no era el uso correcto de una variable global.
En si lo que quería hacer que cuando diera click al botón convertir
Me saliera el resultado
Y al dar click al mismo botón pero escribiendo en textbox de farenheit
Me salga el resultado seria algo como a la inversa pero haciendo uso de un metodo y que en el vallan ambas operaciones dependiendo de que textbox este usando y se asigne al boton convertir, lo siento si no me explique bien
Saludos -