Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

19

Click here to load reader

description

Laboratorio de la Sesión 02 del Curso Desarrollo de Aplicaciones .NET (2007-II) - Universidad San Ignacio de Loyola (USIL)

Transcript of Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Page 1: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página i

Hands-On Lab

Manual de Laboratorio

Sintaxis y manejo básico de objetos y formularios en C#

Page 2: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página ii

Information in this document is subject to change without notice. The example companies, organizations, products, people, and events depicted herein are fictitious. No association with any real company, organization, product, person or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarked, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2007 Microsoft Corporation. All rights reserved.

Microsoft, MS-DOS, MS, Windows, Windows NT, MSDN, Active Directory, BizTalk, SQL Server, SharePoint, Outlook, PowerPoint, FrontPage, Visual Basic, Visual C++, Visual J++, Visual InterDev, Visual SourceSafe, Visual C#, Visual J#, and Visual Studio are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries.

Other product and company names herein may be the trademarks of their respective owners.

Page 3: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página iii

Contenido

LABORATORIO: SINTAXIS Y OBJETOS DE C# ..................................................................................................... 1 Objetivo del Laboratorio ......................................................................................................................................... 1 Ejercicio 1 – Creando la clase Persona ................................................................................................................. 2

Tarea 1 – Creando la clase ................................................................................................................................ 2 Ejercicio 2 – Mostrando la información de la persona ........................................................................................... 7

Tarea 1 – Creando el formulario ........................................................................................................................ 7 Ejercicio 3 – Modificando la información de la persona ....................................................................................... 11

Tarea 1 – Agregando el nuevo formulario al Proyecto .................................................................................... 11 Tarea 2 – Conectando los formularios ............................................................................................................. 14

Page 4: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 1

Laboratorio: Sintaxis y Objetos de C#

Objetivo del Laboratorio

Tiempo estimado para completar el laboratorio: 60 minutes

El objetivo de este laboratorio es comprender la sintaxis del lenguaje C#, la utilización de objetos y la

utilización básica de los formularios de Windows. Crearás una clase Persona la cual permitirá

almacenar su información y adicionalmente crearás formularios Windows que permitan interactuar con

dicha clase. El laboratorio se divide en tres (3) ejercicios:

Creación de la clase Persona.

Crear el formulario windows para mostrar el resumen de la información

de la persona.

Crear el formulario windows para registrar y modificar los datos de la

persona.

Page 5: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 2

Ejercicio 1 – Creando la clase Persona

En este ejercicio crearás la clase persona con sus atributos y métodos necesarios.

Tarea 1 – Creando la clase

La clase Persona contiene información relativa a una persona común, como nombres, apellidos, fecha de nacimiento, etc. Esta clase será fundamental para el desarrollo de todo el laboratorio.

1. Ejecutar Visual Studio: desde el menú Start, seleccionar All Programs > Microsoft Visual Studio 2005 > Microsoft Visual Studio 2005.

2. Desde el menú principal, seleccionar File > New > Project… para crear el Nuevo proyecto.

3. El diálogo de New Project aparecerá. En el árbol de Project Types seleccionar Visual C# > Windows. En la sección Templates de la derecha seleccionar Windows Application. En el textbox Name, escribir el nombre de tu nuevo proyecto:

LAB0201

Selecciona la ubicación deseada para tu proyecto. Deseleccionar el checkbox “Create directory for solution”. Clickear OK para crear la solución.

4. En el explorador de la solución (Solution Explorer), presionar el botón derecho en el proyecto Lab0201 y seleccionar Add > Class. Darle el nombre: clsPersona y presionar Enter. (Ver figura).

Page 6: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 3

5. Modificar el namespace de la clase con: Curso.Lab0201

using System;

using System.Collections;

namespace Curso.Lab0201

{

/// <summary>

/// Implementación de la clase persona

/// </summary>

public class Persona

{ ….

6. Modificar el nombre de la clase a Persona y agregar el siguiente código:

public class Persona

{

#region Miembros Privados

private int m_id;

private string m_nombres;

Page 7: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 4

private string m_apellidopaterno;

private string m_apellidomaterno;

private DateTime m_fechanacimiento;

private int m_nrohijos;

private float m_sueldo;

private int m_docidentidad;

private string m_docidentidadnro;

private string m_sexo;

private int m_estadocivil;

private string m_telefono01;

private string m_telefono02;

private string m_direccion;

private string m_nacionalidad;

#endregion

/// <summary>

/// Constructor de la clase Persona. Aquí se inicializa todos los atributos de la clase

/// </summary>

public Persona()

{

// Inicialización de atributos

m_id = 0;

m_nombres = String.Empty;

m_apellidopaterno = String.Empty;

m_apellidomaterno = String.Empty;

m_fechanacimiento = DateTime.MinValue;

m_nrohijos = 0;

m_sueldo = 0;

m_docidentidad = 0;

m_docidentidadnro = String.Empty;

m_sexo = String.Empty;

m_estadocivil = 0;

m_telefono01 = String.Empty;

m_telefono02 = String.Empty;

m_direccion = String.Empty;

m_nacionalidad = String.Empty;

}

#region Propiedades accesoras

public int ID

{

get { return m_id; }

set { m_id = value; }

}

public string Nombres

{

get { return m_nombres; }

set { m_nombres = value; }

}

public string ApellidoPaterno

{

get { return m_apellidopaterno; }

set { m_apellidopaterno = value; }

}

public string ApellidoMaterno

{

get { return m_apellidomaterno; }

set { m_apellidomaterno = value; }

}

public DateTime FechaNacimiento

{

get { return m_fechanacimiento; }

set { m_fechanacimiento = value; }

}

Page 8: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 5

public int NroHijos

{

get { return m_nrohijos; }

set { m_nrohijos = value; }

}

public float Sueldo

{

get { return m_sueldo; }

set { m_sueldo = value; }

}

public int DocIdentidad

{

get { return m_docidentidad; }

set { m_docidentidad = value; }

}

public string DocIdentidadNro

{

get { return m_docidentidadnro; }

set { m_docidentidadnro = value; }

}

public string Sexo

{

get { return m_sexo; }

set { m_sexo = value; }

}

public int EstadoCivil

{

get { return m_estadocivil; }

set { m_estadocivil = value; }

}

public string Telefono01

{

get { return m_telefono01; }

set { m_telefono01 = value; }

}

public string Telefono02

{

get { return m_telefono02; }

set { m_telefono02 = value; }

}

public string Direccion

{

get { return m_direccion; }

set { m_direccion = value; }

}

public string Nacionalidad

{

get { return m_nacionalidad; }

set { m_nacionalidad = value; }

}

#endregion

public string ObtenerResumen()

{

string resumen = string.Format("Nombres/Apellidos = {0} {1} {2}", m_nombres,

m_apellidopaterno, m_apellidomaterno);

resumen = resumen + System.Environment.NewLine + string.Format("Fecha de Nacimiento = " +

m_fechanacimiento.ToLongDateString());

resumen = resumen + System.Environment.NewLine + string.Format("Nro de Hijos = {0}",

m_nrohijos);

resumen = resumen + System.Environment.NewLine + string.Format("Sueldo = {0:C}", m_sueldo);

Page 9: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 6

resumen = resumen + System.Environment.NewLine + string.Format("Documento de Identidad = {0}

{1}", m_docidentidad, m_docidentidadnro);

resumen = resumen + System.Environment.NewLine + string.Format("Sexo = {0}", m_sexo);

resumen = resumen + System.Environment.NewLine + string.Format("Estado Civil = {0}",

m_estadocivil);

resumen = resumen + System.Environment.NewLine + string.Format("Teléfonos = {0} / {1}",

m_telefono01, m_telefono02);

resumen = resumen + System.Environment.NewLine + string.Format("Dirección = {0}",

m_direccion);

resumen = resumen + System.Environment.NewLine + string.Format("Nacionalidad = {0}",

m_nacionalidad);

return resumen;

}

}

Page 10: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 7

Ejercicio 2 – Mostrando la información de la persona

En este ejercicio crearás el formulario para mostrar el resumen informativo de la persona, es decir

invocarás el método ObtenerResumen() de la clase persona para mostrar su información resumida en

un control TextBox.

Tarea 1 – Creando el formulario

En esta tarea crearás un formulario el cual tendrá un texbox para mostrar el resumen de la persona y un botón para modificar su información. La funcionalidad del botón se implementará en el siguiente ejercicio.

1. En el menú contextual del proyecto (botón derecho en el proyecto Lab0201) seleccionar Add > Windows Form y darle el nombre frmMantPersonas.

2. En el menú contextual del formulario frmMantPersonas seleccionar View Code y agregar el namespace de la clase persona mediante el código:

using Curso.Lab0201;

3. Agregar el objeto principal Persona que se utilizará en la toda la aplicación, como un atributo de

la clase frmMantPersonas , debiendo quedar de la siguiente manera:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Curso.Lab0201;

namespace Lab0201

{

public partial class frmMantPersonas : Form

{

// Objeto principal persona

private Persona MiObjetoPersona;

public frmMantPersona()

{

InitializeComponent();

}

}

}

4. En el menú contextual del formulario frmMantPersonas seleccionar View Designer para ver el formulario en modo diseño. Debes modificarlo hasta quedar de la siguiente manera:

Page 11: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 8

Como puedes ver, se agregó un textbox (txtResumenPersona) con la propiedad MultiLine y un botón simple con el texto “Editar Persona” (btnEditarPersona).

5. Agregar el evento Load al formulario: En la ventana propiedades hacer click en el rayo amarillo para ver los eventos, ubicar la propiedad Load y darle doble click. (Ver figura)

Después de dar el doble click aparecerá la ventana de código con lo siguiente:

Page 12: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 9

private void frmMantPersonas_Load(object sender, EventArgs e)

{

}

En el siguiente paso, agregarás el código para el evento Load.

6. En el evento Load del formulario frmMantPersonas debes agregar el siguiente código:

private void frmMantPersonas_Load(object sender, EventArgs e)

{

// Crear objeto persona.

MiObjetoPersona = new Persona();

// Establecer los atributos

MiObjetoPersona.Nombres = "Juan Carlos";

MiObjetoPersona.ApellidoPaterno = "Rivas";

MiObjetoPersona.ApellidoMaterno = "Moreno";

MiObjetoPersona.FechaNacimiento = DateTime.Parse("15/01/1985");

MiObjetoPersona.DocIdentidad = 1; // DNI

MiObjetoPersona.DocIdentidadNro = "99999990";

MiObjetoPersona.ID = 1;

MiObjetoPersona.Nacionalidad = "Peruano";

MiObjetoPersona.NroHijos = 1;

MiObjetoPersona.Sueldo = 2250.65f;

MiObjetoPersona.Sexo = "M";

MiObjetoPersona.Telefono01 = "333-2223";

MiObjetoPersona.Telefono02 = "444-2223";

MiObjetoPersona.EstadoCivil = 1; // Soltero

MiObjetoPersona.Direccion = "Av. Javier Prado 3442 - 2do Piso.\r\nSanta

Beatriz\r\nLima\r\nPerú";

// Mostrar el resumen de la persona

this.MostrarResumenPersona(); }

Este código creará una persona de ejemplo la cual será mostrada en el formulario.

7. Crear el evento click para el botón btnEditarPersona (ver paso 5) y agregar el siguiente código:

private void btnEditarPersona_Click(object sender, EventArgs e)

{

// Mostrar el resumen de la persona

this.MostrarResumenPersona();

}

8. Crear el método MostrarResumenPersona() en el formulario, el cual invocará al método ObtenerResumen() del objeto Persona y mostrará el resultado en el textbox txtResumenPersona, mediante el siguiente código:

private void MostrarResumenPersona()

{

txtResumenPersona.Text = MiObjetoPersona.ObtenerResumen();

}

9. Para establecer el formulario de inicio del programa, abrir la clase Program.cs y modificar la sentencia existente con el siguiente código:

Page 13: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 10

Application.Run(new frmMantPersonas());

10. Ejecutar el programa presionando Ctrl + F5 y ver el resultado.

Page 14: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 11

Ejercicio 3 – Modificando la información de la persona

En este ejercicio crearás el formulario que permitirá modificar la información de la persona y guardarla

nuevamente en el objeto Persona.

Tarea 1 – Agregando el nuevo formulario al Proyecto

1. Agregar un Nuevo formulario al proyecto y darle el nombre frmEditarPersona. El formulario

debe tener la siguiente forma:

Botones:

btnGuardar

btnCancelar

Cuadros de texto (Texbox):

txtID

txtApellidoMaterno

txtApellidoPaterno

txtNombres

txtSexo

txtNroDocumento

Page 15: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 12

txtNacionalidad

txtDireccion, con la propiedad MultiLine: True

txtTelefono01

txtTelefono02

txtSueldo

txtNroHijos

Selectores de Fecha (DateTimePicker):

dtpFechaNacimiento, con la propiedad Format: Short

Combos (ComboBox):

cboEstadoCivil, con la propiedad DropDownStyle: DropDownList

cboTipoDocumento, con la propiedad DropDownStyle: DropDownList

2. Agregar el contenido a los Combos: Utilizar la propiedad Items para agregar elementos a los combos (ver figura).

Combo: cboTipoDocumento

Combo: cboEstadoCivil

Page 16: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 13

3. En el formulario, agregar el código para referenciar al namespace de la clase persona:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Curso.Lab0201;

4. Agregar el atributo Persona al formulario:

public partial class frmEditarPersona : Form

{

public Persona objPersona;

public frmEditarPersona()

{

InitializeComponent();

}

5. Agregar el método MostrarValores() al formulario:

private void MostrarValores()

{

// Poblar los controles del formulario, en base a los atributos del objeto

txtID.Text = objPersona.ID.ToString();

txtNombres.Text = objPersona.Nombres;

txtApellidoPaterno.Text = objPersona.ApellidoPaterno;

txtApellidoMaterno.Text = objPersona.ApellidoMaterno;

dtpFechaNacimiento.Value = objPersona.FechaNacimiento;

txtNroHijos.Text = objPersona.NroHijos.ToString();

txtSueldo.Text = objPersona.Sueldo.ToString();

cboTipoDocumento.SelectedIndex = objPersona.DocIdentidad - 1;

txtNroDocumento.Text = objPersona.DocIdentidadNro;

txtSexo.Text = objPersona.Sexo;

cboEstadoCivil.SelectedIndex = objPersona.EstadoCivil - 1;

txtTelefono01.Text = objPersona.Telefono01;

txtTelefono02.Text = objPersona.Telefono02;

txtDireccion.Text = objPersona.Direccion;

txtNacionalidad.Text = objPersona.Nacionalidad;

}

6. Agregar el evento Load al formulario con el siguiente código:

private void frmEditarPersona_Load(object sender, EventArgs e)

{

this.MostrarValores();

}

Page 17: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 14

7. Agregar el método GuardarValores() al formulario:

public void GuardarValores()

{

// Establecer los atributos del objeto

objPersona.ID = int.Parse(txtID.Text);

objPersona.Nombres = txtNombres.Text;

objPersona.ApellidoPaterno = txtApellidoPaterno.Text;

objPersona.ApellidoMaterno = txtApellidoMaterno.Text;

objPersona.FechaNacimiento = dtpFechaNacimiento.Value;

objPersona.NroHijos = int.Parse(txtNroHijos.Text);

objPersona.Sueldo = float.Parse(txtSueldo.Text);

objPersona.DocIdentidad = cboTipoDocumento.SelectedIndex + 1;

objPersona.DocIdentidadNro = txtNroDocumento.Text;

objPersona.Sexo = txtSexo.Text;

objPersona.EstadoCivil = cboEstadoCivil.SelectedIndex + 1;

objPersona.Telefono01 = txtTelefono01.Text;

objPersona.Telefono02 = txtTelefono02.Text;

objPersona.Direccion = txtDireccion.Text;

objPersona.Nacionalidad = txtNacionalidad.Text;

}

8. Agregar el evento Click del botón btnCancelar:

private void btnCancelar_Click(object sender, EventArgs e)

{

// Cerrar el formulario

this.Close();

}

9. Agregar el evento Click del botón btnGuardar:

private void btnGuardar_Click(object sender, EventArgs e)

{

// Guardar los datos ingresados en el formulario, en el objeto

this.GuardarValores();

// Cerrar el formulario

this.Close();

}

Tarea 2 – Conectando los formularios

Ahora ya tenemos el formulario totalmente implementado, sin embargo ahora debemos conectarlo con el formulario principal (frmMantPersonas). El formulario frmMantPersonas invocará y mostrará el formulario frmEditarPersona.

1. Ir al formulario frmMantPersonas y modificar el código del evento Click del botón btnEditarPersona:

Page 18: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 15

private void btnEditarPersona_Click(object sender, EventArgs e)

{

// Crear el formulario de edicion

frmEditarPersona formulario = new frmEditarPersona();

// Establecer el objeto en el formulario

formulario.objPersona = MiObjetoPersona;

// Mostrar el formulario

formulario.ShowDialog();

// Mostrar el resumen de la persona

this.MostrarResumenPersona();

}

2. Ejecutar el programa presionando Ctrl + F5 y ver el resultado. (ver figuras)

Page 19: Laboratorio Sesión 02 - Sintaxis de CSharp (C#)

Página 16