viernes, 31 de diciembre de 2010

Navegador en Visual C#

Hola a todos, hoy les voy a presentar como hacer un navegador muy fácil en visual C#


Lo primero que van a hacer es abrir su editor de C# y darle click en crear nuevo proyecto, nos cercioramos de que seleccionamos "Windows form Application" o "aplicasion para de windows" según este en español o ingles y le ponemos un nombre a nuestro proyecto por ejemplo Navegador.




Después le jalamos las esquinas a esa ventana o form para hacerla mas grande.


Luego añadimos al form, de la barra de herramientas de la izquierda arrastramos la herremienta llamada WebBrowser. Nos daremos cuenta de que abarcará todo el espacio del form asi que le modificaremos su propiedad Anchor y nos cercioraremos de que los 4 rectángulos estén seleccionados.


Ahora si podemos modificarle el tamaño a nuestro gusto al WebBrowser.


Ahora  le agregamos una caja de texto (TextBox) y los botones (Button) necesarios. Los seleccionamos cada uno y les cambiamos el nombre en la propiedad Text, el color en la propiedad BackColor y el color de letra en la propiedad ForeColor. y si se le quiere cambiar tambien la fuente del texto, el estilo de fuente y el tamaño sería en la propiedad Font.


Ya teniendo el diseño talvez les quedo algo asi mas o menos con sus respectivos favoritos:


Para que al correr la aplicasion salga maximizada al form se le debe cambiar la propiedad WindowState a Maximized.


Antes de programar es recomendable ponerle un nombre a cada boton para que en lugar de ser button1 sea por ejemplo bt_ir o en lugar de ser button2 sea bt_inicio y asi el codigo sera major entendido por otros o por ti si deseas modificarlo despues de un tiempo.




Ahora si a programar.


Demos doble clik a cada boton para programarle su funcion y por ejemplo en el caso del boton ir aparecera esto:
private void bt_ir_Click(object sender, EventArgs e)

        {            
        }

y entre las llaves se le agregara el codigo correspondiente quedando asi:
private void bt_ir_Click(object sender, EventArgs e)

        {
            webBrowser1.Navigate(textBox1.Text);
        }



Entonces los codigos son los siguientes


boton ir => webBrowser1.Navigate(textBox1.Text);


boton cancelar => webBrowser1.Stop();


boton recargar => webBrowser1.Refresh();


boton atraz => webBrowser1.GoBack();


boton adelante => webBrowser1.GoForward();


boton inicio => webBrowser1.GoHome();


boton acerca de.. 
           MessageBox.Show("Navegador ?????\n\nHecho por:\n[Nombre aqui]\n\nAño 201?"); 


boton Facebook (y cualquier otro botón de enlace personalizado) 

            webBrowser1.Navigate("http://www.facebook.com");
            textBox1.Text="http://www.facebook.com";



boton propiedades
           webBrowser1.ShowPropertiesDialog();



boton imprimir
           webBrowser1.ShowPrintPreviewDialog();

boton Guardar
           webBrowser1.ShowSaveAsDialog();



boton abrir
            OpenFileDialog abrir = new OpenFileDialog();
            abrir.Title = "Abrir pagina web - Navegador DaNieL";
            abrir.AddExtension=true;
            abrir.Filter = "Cualquier archivo (*.*)|*.*|archivos HTML (*.html,.*htm)|*.htm;*.html|Archivos de texto (*.Txt)|" +
              "*.txt|GIF (*.Gif)|*.gif|JPEG (*.jpeg)|*.jpg;*.jpeg|" +
              "PNG (*.Png)|*.png|ART (*.Art)|*.art|AU Files|*.au|" +
              "AIFF Files|*.aiff;*.aif|XBM Files|*.xbm";
            abrir.FilterIndex = 1;
            abrir.RestoreDirectory = true;
            if(abrir.ShowDialog()==DialogResult.OK)
            {
                webBrowser1.Navigate(abrir.FileName);
            }


Para que el navegador se dirija a la direccion escrita en el textboxt con solo apretar la tecla enter se debe hacer lo siguiente:


Seleccionar el TextBoxt y en la barra de propiedades, en la seccion de eventos señalado por un rayo darle doble clik en el evento KeyDown


y entre las llaves escribir el siguiente codigo entre las llaves:



            if (e.KeyCode==Keys.Enter)
                        {
                            webBrowser1.Navigate(textBox1.Text);
                        }



Y aun falta algo. nuestro navegador no actualiza las direcciones. asi que tenemos que hacer lo siguiente:


Seleccionamos el WebBrowser y en la barra de propiedades en la seccion de eventos damos doble clik en el evento Navigated
y escribimos el siguiente codigo entre las llaves


          textBox1.Text = webBrowser1.Url.ToString();


*Y LISSSTO*


Y pos bueno si no se entendió algo aqui les dejo el vídeo de como lo hice



jueves, 30 de diciembre de 2010

C# MODO VISUAL (por fin) [Calculadora sencilla]

El modo visual de C# es ya mas fácil sabiendo los comandos básicos del modo consola así que mejor iré directamente a lo practico con algunos ejemplos que les recomiendo igual vallan haciendo.


el primer ejemplo es el de una calculadora sencilla


Parte 1



Parte 2


Aquí el código de la ventana, osea la calculadora en si
------------------------------------------------------------------------------------------------------------------------------------------------------

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 calculadora1
{
    public partial class Form1 : Form
    {
        double resultado=0;
        bool suma, resta, multi, div;

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double x = double.Parse(textBox1.Text);
            resultado = resultado + x;
            suma = true;
            textBox1.Focus();
            textBox1.Text = "";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            double x = double.Parse(textBox1.Text);
            resultado = resultado + x;
            resta = true;
            textBox1.Focus();
            textBox1.Text = "";
        }

        private void button3_Click(object sender, EventArgs e)
        {
            double x = double.Parse(textBox1.Text);
            resultado = resultado + x;
            multi = true;
            textBox1.Focus();
            textBox1.Text = "";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            double x = double.Parse(textBox1.Text);
            resultado = resultado + x;
            div = true;
            textBox1.Focus();
            textBox1.Text = "";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (suma)
            {
                resultado += double.Parse(textBox1.Text);
            }
            if (resta)
            {
                resultado -= double.Parse(textBox1.Text);
            }
            if (multi)
            {
                resultado *= double.Parse(textBox1.Text);
            }
            if (div)
            {
                resultado /= double.Parse(textBox1.Text);
            }

            textBox1.Text = resultado.ToString();
            suma = false;
            resta = false;
            multi = false;
            div = false;
            resultado = 0;
        }
    }
}

------------------------------------------------------------------------------------------------------------------------------------------------------

viernes, 24 de diciembre de 2010

EJERCICIOS C#

Numeros primos
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Primos
{
    class Primo
    {
        static void Main(string[] args)
        {
            int i=3;
            int sp = 0;
            Console.Write("Introdusca un numero y de enter: ");
            double m=double.Parse(Console.ReadLine());     
            while(i<=m)
            {
                bool BanD = true;
                int j = 3;
                while((j<(i/2))&&BanD)
                {
                    if(i%j==0)
                    {
                        BanD = false;
                    }
                    j = j + 2;
                }
                if(BanD)
                {
                    Console.Write("numero primo: {0}\n",i);
                    sp = sp + 1;
                }
                    i = i + 2;
                }    
            Console.Write("Entre 1 y {0} hay {1} numeros primos",m,sp);
            Console.ReadLine();
        }
    }
}



PROGRAMA PARA UN PLAN DE LLAMADAS

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Llamadas
{
    class Llamadas
    {
        static void Main(string[] args)
        {
            double cuenta=0.0;
            double costo = 0.0;
            int CL=0; //llamadas locales
            char tipo;
            int DUR=0;//DURACION DE LA LLAMADA
            Console.WriteLine("\n**** Programa de un plan de llamadas ****\n");
            Console.WriteLine();
            do
            {
                Console.Write("\n -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - \n");
                Console.WriteLine("Elija el tipo de llamada (use mayusculas):");
                Console.WriteLine();
                Console.WriteLine("|> Para llamada Internacional presione I y de enter");
                Console.WriteLine("|> Para llamada Nacional presione N y de enter");
                Console.WriteLine("|> Para llamada Local presione L y de enter");
                Console.WriteLine("|> Presione X para ver su cuenta y de enter");
                tipo = char.Parse(Console.ReadLine());
                if (tipo == 'X')
                {
                    Console.WriteLine("Su cuenta es de ${0}pesos", cuenta);
                }
                else
                {
                    switch (tipo)
                    {
                        case 'I': Console.Write("Ingrese la duracion de la llamada en minutos: ");
                             DUR = int.Parse(Console.ReadLine());
                            if (DUR <= 3)
                            {
                                costo = 7.59;
                            }
                            else
                            {
                                costo = 7.59 + ((DUR - 3) * (3.03));
                            }
                            break;
                        case 'N': Console.Write("Ingrese la duracion de la llamada en minutos: ");
                             DUR = int.Parse(Console.ReadLine());
                            if (DUR <= 3)
                            {
                                costo = 1.20;
                            }
                            else
                            {
                                costo = 1.20 + (DUR - 3) * 0.48;
                            }
                            break;
                        case 'L':
                            CL++;
                            if (CL <= 50)
                            {
                                costo = 0;
                            }
                            else
                            {
                                costo = 0.60;
                            }
                            break;

                        default: Console.WriteLine("El tipo de llamada no es correcto");
                            break;
                    }
                }

                cuenta = cuenta + costo;
            } while (tipo != 'X');
            Console.ReadLine();
           
        }
    }
}


PROGRAMA PARA UN VINERO CON 5 TIPOS DE VINO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bodega
{
    class Program
    {
        static void Main(string[] args)
        {
            double TIPO1 = 0.0;
            double TIPO2 = 0.0;
            double TIPO3 = 0.0;
            double TIPO4 = 0.0;
            double TIPO5 = 0.0;
            double MCTIPO2 = 0.0;
            double totvin, v;
            int I = 1, N, J, anno=0;
            Console.WriteLine("Ingrese el numero de años: ");
            N = int.Parse(Console.ReadLine());

            for (I = 1; I <= N; I++)
            {
                Console.WriteLine("     Año {0}", I);

                J = 1;
                totvin = 0;

                for (J = 1; J <= 5; J++)
                {
                    Console.Write("\tIngresar Cantidad de litros de vino tipo {0}: ",J);
                    v = double.Parse(Console.ReadLine());
                    totvin = totvin + v;
                    switch (J)
                    {
                        case 1:
                            TIPO1 = TIPO1 + v;
                            break;

                        case 2:
                            TIPO2 = TIPO2 + v;
                            if (v > MCTIPO2)
                            {
                                MCTIPO2 = v;
                                anno++;
                            }
                            break;

                        case 3:
                            TIPO3 = TIPO3 + v;
                            if (v == 0)
                                Console.WriteLine("En el año {0}  no se produjo vino tipo 3.\n", I);
                                break;

                        case 4:
                            TIPO4 = TIPO4 + v;
                            break;

                        case 5:
                            TIPO5 = TIPO5 + v;
                            break;
                    }
                }

                Console.WriteLine("\n\n\t\tTOTAL LITROS PRODUCIDOS EN EL AÑO {0}:  {1}\n\n", I, totvin);
            }

            Console.WriteLine("TOTAL DE VINO POR TIPOS EN LOS {0} AÑOS",I-1);
            Console.WriteLine("Total vino tipo 1 : {0}\n",TIPO1);
            Console.WriteLine("Total vino tipo 2 : {0}\n",TIPO2);
            Console.WriteLine("Total vino tipo 3 : {0}\n",TIPO3);
            Console.WriteLine("Total vino tipo 4 : {0}\n",TIPO4);
            Console.WriteLine("Total vino tipo 5 : {0}\n",TIPO5);

            Console.WriteLine("SE PRODUJO MAS VINO 2 EN EL AÑO {0}, SE PRODUJERO {1} LITROS",anno,MCTIPO2);

            Console.ReadLine();
        }
    }
}