jueves, 16 de octubre de 2014

CONVER4

EJERCICIO PROPUESTO:

1.-Modifique la aplicación Conver3, desarrollada anteriormente en este capitulo para que presente una interfaz gráfica  similar a la mostrada por la figura siguiente.
En ella puede observar que se han añadido dos etiquetas: una  que contiene el etiqueta literal "Fecha" y otra que muestra la fecha actual. También  se han añadido dos botones "+1".El botón "+1"  que esta a la derecha de la caja de texto que muestra a los grados centigrados incrementa en una unidad y, simultáneamente , modifica la caja de texto grados Fahrenheit  para que muestre el valor equivalente.
Un comportamiento análogo tiene el botón "+1" que esta a la derecha de la caja de texto de los grados Fahrenheit.



En cada uno de los botones +1 se va programar.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PRACTICA9
{
    public partial class Form1 : Form
    {
 
        public Form1()
        {
            InitializeComponent();
        }
        ////private ErrorProvider ProveedorDeError;
        ////    ProveedorDeError = new ErrorProvider();
        private double datoCajaTexto;

        private void ctGradosC_Validating(object sender, CancelEventArgs e)
        {
            TextBox objTextBox = (TextBox)sender;
            try
            {
                datoCajaTexto = Convert.ToDouble(objTextBox.Text);
            }
            catch (Exception)
            {
                e.Cancel = true;
                objTextBox.SelectAll();
                ProveedorDeError.SetError(objTextBox, "Tiene que ser numerico");
                //MessageBox.Show("Tiene que ser numerico");
            }
        }
        private void ctGradosF_Validating(object sender, CancelEventArgs e)
        {
            TextBox objTextBox = (TextBox)sender;
            try
            {
                datoCajaTexto = Convert.ToDouble(objTextBox.Text);
            }
            catch (Exception)
            {
                e.Cancel = true;
                objTextBox.SelectAll();
                ProveedorDeError.SetError(objTextBox, "Tiene que ser numerico");
                //MessageBox.Show("Tiene que ser numerico");
            }
        }

        private void ctGradosC_Validated(object sender, EventArgs e)
        {

            ProveedorDeError.Clear();
            conversion(sender);

        }
        private void ctGradosF_Validated(object sender, EventArgs e)
        {
            ProveedorDeError.Clear();
            conversion(sender);


        }
        private void conversion(System.Object sender)
        {
            TextBox objTextBox = (TextBox)sender;

            double grados;

            if (objTextBox == ctGradosC)
            {
                grados = datoCajaTexto * 9.0 / 5.0 + 32.0;

                ctGradosF.Text = string.Format("{0:F2}", grados);
            }
            if (objTextBox == ctGradosF)
            {
                grados = (datoCajaTexto - 32.0) * 5.0 / 9.0;
                ctGradosC.Text = string.Format("{0:F2}", grados);

            }
        }

        private void ctGradosC_KeyPress(object sender, KeyPressEventArgs e)
        {
            TextBox objTextBox = (TextBox)sender;
            if (e.KeyChar == Convert.ToChar(13))
            {
                e.Handled = true;
                if (objTextBox == ctGradosC)
                {
                    ctGradosF.Focus();
                }
                else
                {
                    ctGradosC.Focus();
                }
            }

        }
        private void ctGradosF_KeyPress(object sender, KeyPressEventArgs e)
        {
            TextBox objTextBox = (TextBox)sender;
            if (e.KeyChar == Convert.ToChar(13))
            {
                e.Handled = true;
                if (objTextBox == ctGradosC)
                {
                    ctGradosF.Focus();
                }
                else
                {
                    ctGradosC.Focus();
                }
            }
        }

        private void button1_Click(System.Object sender,System.EventArgs e)
        {
            double grados = double.Parse(ctGradosC.Text) + 1;
 ctGradosC.Text = grados.ToString();
 grados = double.Parse(ctGradosC.Text);
grados=grados*9.0/5.0+32.0;
ctGradosF.Text=string.Format("{0:F2}",grados);
               
            }
        

      
        private void button2_Click_1(System.Object sender,System.EventArgs e)
        {
                  double grados = double.Parse(ctGradosF.Text) + 1;
  ctGradosF.Text = grados.ToString();

 grados = double.Parse(ctGradosF.Text);
grados= grados- 32.0 * 5.0 / 9.0;
ctGradosC.Text=string.Format("{0:F2}",grados);
               

            }

        }
        }
   

Esta es la primera pantalla que es el diseño.



Esta es la pantalla ya programada  y funcionando donde podemos hacer la conversión de grados.

Aquí ya utilizamos el botón de mas 1, nos suma uno nuestro número y nos convierte a los grados 
correspondientes.



Aquí hacemos uso de la otra caja de texto(ctGradosF).

Le sumamos 1  y hacemos la conversión de grados de Grados Fahrenheit a Grados Centígrados.


Hacemos el uso del ErroProvider, cuando colocamos el puntero nos muestre "tiene que ser numérico" ya sea dando Enter o pulsando el botón +1. 



Aquí también  hacemos el uso del ErroProvider,cuando colocamos el puntero nos muestra  "tiene que ser numérico" ya sea dando Enter o pulsando el botón +1.





Aquí utilizamos el  MessageBox.Show ("Tiene que ser numérico"),  en  cada caja de texto nos mostrara esta pantalla que "Tiene que ser numérico", ya sea dando Enter(tecla (13)) o pulsando el botón +1.

CONVER3 CON DOS BOTONES Y CON LA FECHA.