0% encontró este documento útil (0 votos)
176 vistas19 páginas

Guía Práctica No. 2 POO104 Ciclo 02-2022

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 19

1

POO104, Guía 2 1

Facultad: Ingeniería
Escuela: Computación
Asignatura: Programación
Orientada a Objetos

GUIA 2:
Entorno de Desarrollo Visual Studio.

Competencia
Desarrolla sistemas de información informáticos mediante la integración de principios
matemáticos, ciencia computacional y prácticas de ingeniería, considerando estándares de calidad
y mejores prácticas validadas por la industria del software

Materiales y Equipo
• Guía de laboratorio # 2 Programación Orientada a Objetos.
• Visual Studio C#
• Dispositivo de almacenamiento (opcional)

Introducción Teórica
INTRODUCCIÓN A WINDOWS FORM
Esta guía tiene como objeto mostrar cómo construir aplicaciones básicas de Windows Forms
usando varios de los componentes más comunes que son una característica de la mayoría de las
aplicaciones GUI.
Se verá como establecer las propiedades de los formularios y de los componentes de Windows
Forms usando Visual Designer y la ventana de propiedades. También tiene por objeto que se
aprenda a cambiar o examinar los valores de estas propiedades dinámicamente usando el código
de C#.

HERRAMIENTAS DE C#
A continuación, se detallan las herramientas y ventanas más importantes de Visual C#. Las
ventanas de la mayoría de herramientas pueden abrir desde el menú “Ver”.
1. El editor de código, para escribir código fuente
2. El compilador de C#, que se encarga de convertir el código fuente de C# en un programa
ejecutable.
3. El depurador de Visual Studio, para probar el programa
4. El cuadro de herramientas y el Diseñador, para desarrollar rápidamente interfaces de
usuario con el mouse.
2
POO104, Guía 2 2
5. El explorador de soluciones, para ver y administrar archivos de proyectos y
configuraciones.
6. El diseñador de proyectos, para configurar opciones del compilador, rutas de
implementación, recursos, entre otros.
7. La vista de clases, para desplazarse por el código fuente según los tipos, no los archivos.
8. La ventana “Propiedades”, para configurar propiedades y eventos en los controles de la
interfaz de usuario.
9. El examinador de objetos, que ve los métodos y clases disponibles en las bibliotecas de
vínculos dinámicos, incluidos los ensambladores de .NET Framework y los objetos COM
10. Document Explorer, para explorar y buscar la documentación del producto en su equipo
local y en Internet.

ENTORNO
El entorno C# está compuesto con herramientas para interactuar a través de ventanas, páginas
de propiedades y asistentes.

1. Cuadro de herramientas
2. Barra de herramientas y menú
3. Proyectos abiertos, propiedades y ayuda
4. Compilación de la aplicación, listado de errores.
5. Área de diseño y edición
3
POO104, Guía 2 3

EXPLORADOR DE SOLUCIONES Y DISEÑADOR DE PROYECTOS

La ventana de la parte superior derecha es el “Explorador de Soluciones”, que muestra todos los
archivos del proyecto en una vista de árbol jerárquica.

Cuando se utiliza el menú “Proyecto” para agregar nuevos archivos al proyecto, se verán
reflejados en el Explorador de Soluciones. Además de los archivos, el Explorador de soluciones
también muestra la configuración del proyecto y las referencias a las bibliotecas externas que
necesita la aplicación.

Para obtener acceso a las páginas de propiedades del Diseñador de proyectos, haga clic con el
botón secundario del mouse en “Propiedades” del Explorador de soluciones y, a continuación,
haga clic en “Abrir”.

Utilice estas páginas para modificar opciones de generación, requisitos de seguridad, detalles de
implementación y muchas otras propiedades del proyecto.

Procedimiento
G2_Ejemplo_01: Creación de primer proyecto

Para la creación del proyecto, en Visual Studio

1. Inicie Visual Studio.NET

2. En el menú “Archivo (FILE)”, seleccione “Nuevo (NEW)” y después seleccione la opción


“Proyecto (PROJECT)”
4
POO104, Guía 2 4

En el panel “Tipos de Proyecto”, seleccione proyectos de Visual C# y en el panel de plantillas,


seleccione “Aplicación para Windows (Windows Forms Aplication)” y en el cuadro de texto
“Nombre”, escribiremos “Ejemplo1”, después hacer clic en el botón “Aceptar (OK)”

Pasos

1. En la ventana “Propiedades” (si no ve la ventana presione (F4), haga clic en la propiedad


(Name), y después escriba Ejemplo1 en el cuadro de texto (Name) para cambiar el nombre
del control del formulario (esto se hace así, porque con este nombre se hará referencia cuando
se esté programando)

2. En la misma ventana “Propiedades”, seleccione la propiedad Text y después escriba “Este es


un ejemplo”, para cambiar la barra de título del formulario.
5
POO104, Guía 2 5
3. Seleccione la propiedad Font y haga clic en el botón “Puntos suspensivos” que aparece al
seleccionar la propiedad. Cuando se hace clic en el botón “Puntos suspensivos”, se abre el
cuadro de diálogo “Font” y se puede seleccionar la fuente y los efectos que se desean.

Añadir controles a los formularios


Hasta ahora se ha creado un formulario, se han establecido algunas de sus propiedades. Para
que el formulario sea útil, se necesita agregar los controles y
escribir algo de código propio.

Agregar controles de Windows Forms

En la siguiente figura se muestra el cuadro de herramientas,


donde podemos arrastrar los controles que necesitamos para
nuestra aplicación, (si no aparece la venta presionar Ctrl + w
+x)

Arrastre los controles necesarios, para construir un formulario similar al mostrado en la figura
siguiente:
6
POO104, Guía 2 6

Form

Textbox

Label

Botón

Botón

Control Propiedad Valor


form1 Text Este es un ejemplo
Name frmventana
label1 Text Ingrese su nombre:
Name lbmensaje
textbox1 Text (dejar vacío)
Name txtnombre
button1 Text Guardar nombre
Name btnguardar
button2 Text SALIR
Name btnsalir

Ahora que tenemos toda la interfaz diseñada procedamos a la codificación:

Entremos al código dando


F7 o clic derecho sobre el
form y eligiendo < >View
Code.

Para regresar al diseño cambiamos de pestaña y seleccionamos Form1.cs [Design]


7
POO104, Guía 2 7
Programando eventos

Hasta ahora se ha creado un formulario, se han establecido algunas de sus propiedades. Como
siguiente paso codificaremos los eventos de cada herramienta, de forma que logremos obtener
nuestro mensaje.

1. Damos doble clic sobre el btnguardar y nos mostrará algo como esto:

Al hacer doble clic creamos un evento


para esa herramienta y esto genera
una función (o procedimiento) para
decirle qué hacer

1.1 Ingresamos el siguiente fragmento de código en este método

string nombre = txtnombre.Text;


MessageBox.Show("Bienvenido a POO " + nombre + " este es tu primer formulario");

2. Como segundo paso hagamos la misma rutina, pero con el btnsalir y dentro de su método
escribamos:

Application.Exit(); //termina la aplicación

3. Estamos listos para probar el programa, ejecútelo con Start o F5 e ingrese su nombre en el
textbox. Al hacer esto debe aparecernos esta ventana

4. Para concluir, de clic en Aceptar y luego clic en el botón salir que usted programó.
8
POO104, Guía 2 8

CONSIDERACIONES
• Los label y los messagebox, suelen ser utilizados como los encargados de
mostrar mensajes para el usuario (hacen la función de un Console.WriteLine( )
pero en el entorno gráfico. Aunque no son los únicos sí son de los más
frecuentes
• Hay varias formas de capturar información: textbox, radiobutton, listbox,
comboBox. (Muchas formas de un Console.ReadLine( ) )
• Todos los datos recogidos son considerados texto (string), así que si deseamos
hacer cálculos con ellos (como una suma) hay que convertir eso a int, float,
double o a lo que necesitemos.

G2_Ejemplo_02: Creación de calculadora

Ahora haremos una aplicación para calcular las cuatro operaciones básicas

1. Configure las propiedades de los controles que acaba de agregar al formulario. Para cambiar
el valor de la propiedad de un control, haga clic en el control para seleccionarlo y luego
introduzca el valor correcto en la ventana de Propiedades. Hasta hacer un formulario similar
a esto.

En la siguiente tabla se listan las propiedades y valores que hay que asignar a cada uno de los
controles.
9
POO104, Guía 2 9

Control Propiedad Valor


Label1 Text Número 1
TextBox1 Name txtnum1
Text Dejar en blanco

Label2 Text Número 2

TextBox2 Name txtnum2


Text Dejar en blanco
ComboBox1 Name cmbop
DropDrowStyle DropDrowList (Esta configuración fuerza a los
usuarios a elegir uno de los elementos de la lista;
los usuarios no pueden escribir un valor nuevo)
ListBox1 Name listadvance
RadioButton1 Name rbtn1
Text Básicas
RadioButton2 Name rbtn2
Text Avanzadas
Button1 Name btncalcular
Text Calcular

Cambio de las propiedades de forma dinámica

Hasta ahora se ha usado la vista de diseño para fijar las propiedades estáticamente. Cuando se
ejecuta el formulario, sería útil restablecer el valor de cada control a un valor inicial
predeterminado.

Para hacerlo hay que escribir algo de código.

• Dar doble clic en cualquier parte del formulario(que no sea sobre un control), para entrar al
evento Load, si lo hizo bien el cursor deberá aparecer, dentro de las llaves del siguiente
texto:

private void Ejemplo1_Load(object sender, EventArgs e)


{
}

• Dentro de esas llaves justo donde aparece el circulo digitamos lo siguiente:


10
POO104, Guía 2 10
//agrega item al combo
cmbop.Items.Clear( );
cmbop.Items.Add ("sumar");
cmbop.Items.Add ("Restar");

//agrega item a la lista


listadvance.Items.Clear ( );
listadvance.Items.Add
("Multiplicacion");
listadvance.Items.Add ("Division");
listadvance.TabIndex = 0;

//inhabilita el combo y la lista


cmbop.Enabled = false;
listadvance.Enabled = false;

• Presione la tecla F5 para que vea lo que le sucede al formulario, este deberá aparecer con
el combo y la lista desactivada

• Ahora vuelva al formulario (modo de diseño), y dar doble clic sobre el control radiobutton
que tiene de texto BASICAS.

private void rbtn1_CheckedChanged (object sender, EventArgs e)


{
}

• El nombre de ese método aparece como CheckedChanged, que indica que cuando el radio
button cambie, se realizará lo que está dentro de este método, ahora digitamos lo
siguiente:

if (rbtn1.Checked == true)
{ cmbop.Enabled = true;
listadvance.Enabled = false;
}

Al final ese método se verá así:

private void rbtn1_CheckedChanged (object sender, EventArgs e) {


if (rbtn1.Checked == true)
{ cmbop.Enabled = true;
11
POO104, Guía 2 11
listadvance.Enabled = false;
}
}

• Regresar al modo de diseño y dar doble clic al segundo radiobutton con el texto
de “Avanzadas”, y digitar lo siguiente:
cmbop.Enabled = false;
listadvance.Enabled = true;

//me permite seleccionar el primer elemento de la lista

listadvance.SelectedIndex = 0;

• Regresamos nuevamente al modo de diseño, y damos doble clic al botón, para que nos
aparezca el evento de ese botón de la siguiente manera:

private void btncalcular_Click (object sender, EventArgs e)


{
}

• Dentro de esas llaves, digitar el texto siguiente:


double n1, n2, r;
n1 = Convert.ToDouble (txtnum1.Text);
n2 = Convert.ToDouble (txtnum2.Text);

if (cmbop.Enabled == true)
{ if (cmbop.SelectedItem.ToString ( ) == "sumar") r = n1 + n2;
else
r = n1 - n2;

MessageBox.Show ("El Resultado es "+ r.ToString ( ),"Respuesta");


}

if (listadvance.Enabled == true)
{
if (listadvance.SelectedItem.ToString ( ) == "Multiplicacion") r = n1
* n2;
else
r = n1 / n2;
MessageBox.Show ("El Resultado es " + r.ToString ( ), "Respuesta");
}
Presione F5 para ejecutar la aplicación.
12
POO104, Guía 2 12

G2_Ejemplo_03: Llamada de un formulario desde otro formulario y paso de variables.

Para la creación del proyecto, en Visual Studio

1. Utilice como base G2_Ejemplo_01

Una vez cargado el proyecto, haremos que cambie el envío de mensaje y que ya no sea por medio
de un messageBox su visualización sino mediante otro formulario, para ello haremos lo siguiente:

i. Al botón Guardar Nombre le editaremos la propiedad de texto y haremos que ahora diga
Enviar Mensaje.

ii. Dentro del código a la variable string nombre (que se encuentra en la modificaremos por
un string texto

iii. Comentamos la línea de código del messageBox ( o la eliminamos, eso es opcional, pero
perderá ese código)

iv. Damos clic derecho en el nombre del proyecto y agregamos un formulario de Windows
(Windows Form) (según imagen)

v. En el nuevo formulario agregaremos un label


y un botón, el primero que permitirá leer
el mensaje enviado y el segundo nos
retornará a la primera ventana. (Quedará
algo como la imagen) NO OLVIDE DARLE
UN NOMBRE PERSONALIZADO A LOS
ELEMENTOS.
13
POO104, Guía 2 13

vi. Regresemos al formulario 1 (Ventana 1) y en el código del botón para enviar,


codificaremos lo siguiente:

string texto = txtnombre.Text;


string mensaje = string.Format("Bienvenido al segundo formulario " + texto);
Form2 frmrecibe = new Form2(mensaje); /* creo un objeto del segundo formulario,
adonde mando información*/
frmrecibe.Visible = true; // muestra el nuevo formulario
this.Visible = false; // esconde el formulario actual

vii. En el código del segundo formulario (Ventana 2, el que acabamos de agregar) vamos a
incluir un constructor adicional (con parámetros) así:

public Form2(string textx)


{
InitializeComponent();
lbrecibido.Text = textx; // Asignamos lo recibido al label

viii. En el evento click del botón que regresa a la pantalla anterior (siempre en el segundo
formulario) tendríamos esto:

private void regreso_Click(object sender, EventArgs e)


{

frmventana form1 = new frmventana(); //instanciamos al primer formulario


this.Close(); //cerramos el formulario actual
form1.Visible = true; //hacemos visible al form1 de nuevo

Si todo funciona bien debemos ver una


pantalla como esta
14
POO104, Guía 2 14
G4_Ejemplo_04: Creación de login con archivo de texto.

Para la creación del proyecto, en Visual Studio

1. Inicie Visual Studio.NET

2. En el menú “Archivo (FILE)”, seleccione “NUEVO (NEW)” y después seleccione la opción


“Proyecto (PROJECT)”

3. Cree una carpeta con el nombre que seleccione (puede ser su número de carnet, guarde la
ruta de ubicación pues será usada en el programa)

4. Cree un proyecto llamado “LoginBasico”, renombre el formulario como sistema

5. Para crear este formulario se han utilizado: 3 button, 2 textboxt, 2 label, 1 pictureBox. En
base a ellos modifique las propiedades que considere convenientes de forma que tenga una
pantalla similar a la del ejemplo.

Para la contraseña debe modificar una propiedad: PasswordChar e ingrese el carácter que
desea, puede ser un *, esto para que no se vea la contraseña.

Para el pictureBox si la imagen es más grande puede ajustarlo con en Size Mode: Stretch
Image.

6. En el código (F7) crearemos una variable de tipo string llamada password (ésta pertenece
a la clase, pero no a ningún método en específico)

string password;

En el botón registro codificaremos lo siguiente:

private void btnregistro_Click(object sender, EventArgs e)

{
string usuario = txtuser.Text;
string contra = txtpass.Text;
string url= "C:\\POO\\" + usuario +".txt"; //usted elige ubicación de carpeta, la
que hizo en el paso 3, pero esta debe existir

if(File.Exists(url)) //verifica que el archive exista


15
POO104, Guía 2 15
{
MessageBox.Show("ERROR. ¡Usuario ya existe!"); //usuario registrado
txtuser.Clear(); //limpiamos todos los textbox
txtpass.Clear();
}
else
{
File.WriteAllText(url, contra); /*Crea un Nuevo archivo con ese nombre y guarda
dentro del archivo el valor del segundo parámetro*/
MessageBox.Show("Usuario Registrado con éxito");
txtuser.Clear();
txtpass.Clear();

7. Para el botón de ingreso, su código tendrá:

private void btningreso_Click(object sender, EventArgs e)


{
string usuario = txtuser.Text; //capturamos los valores de usuario y contraseña
string contra = txtpass.Text;

string url= "C:\\POO\\" + usuario +".txt";

if(File.Exists(url)) //verifica si existe


{
password = File.ReadAllText(url); //lee el texto almacenado dentro del archivo
if(contra.Equals(password)) //verifica si contraseña es igual al archivo
{
MessageBox.Show("¡Ingreso exitoso, bienvenido!"); //login exitoso
}
else
{
MessageBox.Show("¡Contraseña incorrecta!  ");//login fallido
}
}
else
{
MessageBox.Show("¡Usuario incorrecto! "); //usuario incorrecto
}

8. Finalmente vamos a codificar el SALIR

private void btnsalir_Click(object sender, EventArgs e)


{
Application.Exit();
}

9. Corremos el programa y anotamos lo que sucede


16
POO104, Guía 2 16

G4_Ejemplo_05: Utilización de herramientas para cálculos con arreglo.

Se pide lo siguiente:

De un listado de N enteros cualquiera brindados por usuario, determinar:

a) Mayor valor de los números pares negativos


b) porcentaje de valores ceros en el listado ingresado
c) valor promedio de los valores impares positivos
d) menor mayor de los pares positivos registrados

Para ello se creará una ventana como la siguiente

Para esta ventana se han utilizado:

5 botones - 5 textbox (4 con la propiedad ReadOnly en TRUE) – 1 ListBox – 5 label – 1 GroupBox

Recuerde activar los eventos para los objetos y proceda a programar lo siguiente:

//Evento para ingresar datos al arreglo


private void btnIngresar_Click(object sender, EventArgs e)
{
listbArreglo.Items.Add(txbNumero.Text);
txbNumero.Clear();
txbNumero.Focus();
}
17
POO104, Guía 2 17
//Evento calcular al mayor de los pares negativos
private void btnCalc1_Click(object sender, EventArgs e)
{
int mayorneg = -1000;
for (int i = 0; i < listbArreglo.Items.Count; i++)
{
string valor = listbArreglo.Items[i].ToString();
int numero = int.Parse(valor);

if (numero < 0 && numero % 2 == 0)


{
if (numero > mayorneg)
{
mayorneg = numero;
txbCalculo1.Text = mayorneg.ToString();
}
}
else
{
txbCalculo1.Text = "No hay números negativos pares";
}
}
}

//Evento para calcular porcentaje de ceros


private void btnCalc2_Click(object sender, EventArgs e)
{
double cantidadnumeros = listbArreglo.Items.Count;

double cantidadceros = 0;
double porcentaje = 0;

for (int i = 0; i < listbArreglo.Items.Count; i++)


{
string valor = listbArreglo.Items[i].ToString();
int numero = int.Parse(valor);

if (numero == 0)
{
cantidadceros = cantidadceros + 1;

}
}
porcentaje = (cantidadceros / cantidadnumeros) * 100;
txbCalculo2.Text = porcentaje.ToString() + "%";
}

//Evento para obtener el promedio de impares positivos


private void btnCalculo3_Click(object sender, EventArgs e)
{
double prom;
double cantidadimpares = 0;
double suma = 0;

for (int i = 0; i < listbArreglo.Items.Count; i++)


{
18
POO104, Guía 2 18
string valor = listbArreglo.Items[i].ToString();
int numero = int.Parse(valor);

if (numero > 0 && numero % 2 != 0)


{
suma = suma + numero;
cantidadimpares = cantidadimpares + 1;
}
}

prom = suma / cantidadimpares;


txtCalculo3.Text = prom.ToString();
}

//Evento para mayor de pares positivos


private void btnCalculo4_Click(object sender, EventArgs e)
{
int mayor = 0;

for (int i = 0; i < listbArreglo.Items.Count; i++)


{
string valor = listbArreglo.Items[i].ToString();
int numero = int.Parse(valor);

if (numero > 0 && numero % 2 == 0)


{
if (numero > mayor)
mayor = numero;}
}

txbCalculo4.Text = mayor.ToString();
}

Desarrollo de habilidades

1. Crear un formulario, que pedirá el nombre y el salario de un empleado.

En caso que el empleado sea un Gerente se le hace un descuento de 20% sobre el


sueldo (impuestos), si es subGerente se le hace un descuento del 15% y si es
secretaria del 5%.

El resultado debe mostrar qué tipo de empleado es, cuánto gana antes de los
descuentos, cuánto le descuentan (en dinero) y cuánto le queda de sueldo líquido.

Se sugiere un diseño como el siguiente (pero es libre según su creatividad)


19
POO104, Guía 2 19

2. Realice un programa que haga conversiones de tres tipos diferentes de datos:

a. Temperatura (de celcius a farenheit)


b. Longitud (de metros a pies)
c. Peso (de kilogramos a libras)

3. Crear un formulario, donde se calculará el valor de x1 y x2 utilizando la formula cuadrática

4. Modifique el ejemplo 5 de forma que realice todos los cálculos por un único botón y
que para ingresar datos al arreglo no sea necesario presionar un botón, es decir que
se le pide borrar el botón ingresar y que ahora el ingreso se realice cuando el usuario
presione la tecla Enter.

5. Investigue qué formas de poder hacer menús de ventanas permite C#. Tome como
base sus ejercicios y modifique de forma que pueda aplicarlo en ellos.

También podría gustarte