Sei sulla pagina 1di 21

Sistemas UNI. Instructor: V. Carlos, Segura P.

Microsoft Partner

LABORATORIO WINDOWS FORMS .NET – 4.

Derechos Reservados, solo para ser usados dentro de la


institución.
Derechos de Autor

El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no se
puede reproducir, transcribir, almacenar a un sistema de recuperación o de alteración,
asimismo la traducción a otro idioma de ninguna forma o por ningún medio mecánico,
manual, electrónico, magnético, óptico o de otro modo.

La persecución de una reproducción no autorizada tiene como


consecuencia la cárcel y/o multas.

UNIVERSIDAD NACIONAL DE INGENIERIA 1


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

4 WINDOWS FORMS

1 Formularios MDI y Nuevos Controles.


1.1 Creación de Formularios MDI

Para crear un formulario tipo MDI, este debe tener asignado en la propiedad IsMdiContainer como
verdadero, este transforma a un formulario como un contenedor de formularios.

Para involucrar un nuevo formulario como involucrado dentro de un MDI, este se debe establecer en la
propiedad MdiParent del formulario.

1.2 Uso del control MenuStrip

En VS2005 uno de los controles nuevo e interesantes son los asociados al manejo de menús, ahora estos
controles entregan nuevas funcionalidades que hacen sus usos mas fáciles y potentes a la vez. El control
MenuStrip es nuevo en esta versión, con este control se pueden incluso crear menús de acceso rápido
estándar como los que aparecen en todos los programas de Office.

Este control se usa para formulario tipo MDI para la creación de menús, permite teclas de acceso rápido,
tecla de método abreviado, marcas de verificación, imágenes por opción, barras separadoras, y otros
controles de la familia System.Windows.Forms.Control es decir TextBox, Labels, etc.

Aunque el control MenuStrip reemplaza al anterior, éste conserva a efectos de compatibilidad con versiones
anteriores y uso futuro, según sea el caso.

UNIVERSIDAD NACIONAL DE INGENIERIA 2


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

El control MenuStrip se encuentra agrupado por los controles “Menus & Toolbars”.

Agregando elementos predefinidos

Elementos de un MenuStrip

MenuItem
ComboBox
Separator
TextBox

UNIVERSIDAD NACIONAL DE INGENIERIA 3


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Cuadro de Opciones para Mantenimiento de un MenuStrip

Para la edición manual de los elementos se debe seleccionar el MenuStrip Click derecho y seleccionamos
“Edición de Ítems” o desde el cuadro de propiedades en “Ítems” y tendremos el siguiente cuadro para ver el
“El cuadro de edición”.

Miembros importantes del control MenuStrip

ToolStripMenuItem
Representa una opción seleccionable mostrada en un MenuStrip. A nivel clases inicializa una nueva
instancia de la clase ToolStripMenuItem con el nombre especificado que muestra la imagen y el
texto especificados, y realiza la acción especificada cuando se hace clic en ToolStripMenuItem, entre
otras instancias principales.

'Creamos los menús


Dim tCabecera As New ToolStripMenuItem
Dim tOpcion As New ToolStripMenuItem

'Colocamos los nombres respectivos


tCabecera.Text = "Archivo"
tOpcion.Text = "Abrir Archivo"

'Agregamos a "Archivo" el item "Abrir Archivo"


tCabecera.DropDownItems.Add(tOpcion)

'Agregamos los menús al MenuStrip


Me.MenuStrip1.Items.Add(tCabecera)

Solo para las cabeceras se agregaran elementos con el método Items.Add, para los demas será con
el método DropDownItems, para este ejemplo:

UNIVERSIDAD NACIONAL DE INGENIERIA 4


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

ToolStripControlHost
Aloja controles personalizados o controles de formularios Windows Forms.

'Creamos otro menú:


Dim tControl As New ToolStripMenuItem
tControl.Text = "Alojando Controles"

'Creando el control para ser alojado


Dim oCalendario As New MonthCalendar
Dim tControlHost As New ToolStripControlHost(oCalendario)

'Agregamos los menús


tControl.DropDownItems.Add(tControlHost)
Me.MenuStrip1.Items.Add(tControl)

Para este ejemplo tenemos lo siguiente:

1.3 Uso del control ToolStrip

El ToolStrip es un control de acceso rápido, se comporta como un contenedor de controles para formar la
barra de herramientas, ofrece también vistas para Windows XP tipo Office o Internet Explorer. Al igual que
el control MenuStrip ofrece la incorporación de elementos estándar.

Con este control incluye la activación y edición en contexto, permite realizar un diseño personalizado,
posición del control tanto horizontal como vertical, todo esto dentro del control ToolStripContainer
especificado

UNIVERSIDAD NACIONAL DE INGENIERIA 5


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Agregando elementos predefinidos

Elementos de un ToolStrip
El ToolStrip, es un control de contenedores de los siguientes objetos:

ToolStripButton,
ToolStripComboBox,
ToolStripSplitButton,
ToolStripLabel,
ToolStripSeparator,
ToolStripDropDownButton,
ToolStripProgressBar
ToolStripTextBox.

Ejemplo:
Realicemos el siguiente Diseño para un ToolStrip:

UNIVERSIDAD NACIONAL DE INGENIERIA 6


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Agregando Elementos a un ToolStrip.

'Agregando un Boton a un ToolStrip:


Dim tBoton As New ToolStripButton
tBoton.Text = "Mi Nuevo Boton"
Me.ToolStrip1.Items.Add(tBoton)

Al usar uno de los botones del ToolStrip de diseño anterior, en el botón ir podríamos colocar lo siguiente
(previamente colocar el control WebBrowser)

El control WebBrowser, nos permite crear exploradores dentro de nuestros proyectos, en este pequeño
ejemplo dentro del control ToolStripTextBox se ingresara la ruta que queremos explorar y al accionar en el
control ToolStripButton activaremos la página en el control WebBrowser.

'Obtenemos la dirección ingresada:


Dim sUrl As String
sUrl = Me.ToolStripTextBox2.Text

'Mostramos la pagina:
Me.WebBrowser1.Navigate(sUrl)

1.4 Uso del Control StatusStrip

El control StatusStrip representa un control que sirve para representar información de la aplicación, como
el nombre del equipo, el usuario, el aplicativo, la opción del sistema, la fecha actual. Como se ve este
control se usa mayormente para mostrar información sobre la aplicación, este control para la muestra de
información utiliza los objetos:
ToolStripStatusLabel
ToolStripProgressBar
ToolStripDropDownButton
ToolStripSplitButton

Este control reemplaza y amplía las funciones del control StatusBar de versiones anteriores, para el control
efectos de compatibilidad con versiones anteriores.

UNIVERSIDAD NACIONAL DE INGENIERIA 7


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

UNIVERSIDAD NACIONAL DE INGENIERIA 8


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

2 Nuevos Controles, Acceso a Datos con ADO.NET


2.1 Introducción

La versión de ADO.NET 2.0 incorpora nuevas clases e interfaces que no existiera en la versión anterior,
además de nuevos controles y mejoramiento para el uso de clases que ya existían, para esto a la hora de
usar una clase o método antiguo, nos dará un mensaje de que este esta obsoleto y la recomendación por el
cual fue cambiado.

ADDO.NET 2.0 mejora el tratamiento de los datos, modificación de datos para bloques de información de
gran cantidad.

ADO.NET 2.0 incorpora varios proveedores de datos, entre ellos dos principales que permiten conectarse
con SQL Server y Oracle (siempre y cuando se haya instalado su manejador de BD), así como otros que
facilitan el uso de controladores ODBC y OLE DB para acceder a aquellos provenientes de Excel, Access,
MySQL, y otras bases más.

DataSet

DataGridView

DataTable BindingSource
TextBox

ComboBox

Controles
Table Adapter de Datos

2.2 Modelo Practico de cómo Interactúan los Objetos de ADO.NET

Conection

DataAdapter

DataSet
BindingSource

DataTable’s

UNIVERSIDAD NACIONAL DE INGENIERIA 9


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

2.3 Crear una Conexión a una Base de Datos

Para crear una conexión a un servidor de base de datos, se debe usar el “Explorador de Servidores”, que
creara una nueva conexión, como se muestra en la pantalla:

2.4 Configurar la Conexión.

Al seleccionar una nueva configuración la pantalla a mostrarse será la siguiente, donde tendremos que
indicar lo siguiente:
Nombre del Servidor de la Base de Datos.
Modo de Autenticación.
Base de Datos a conectarse.

Nombre de
Servidor de BD

Nombre de la BD
a conectarse

Al terminar de configurar la conexión, en el explorador de soluciones se observara lo siguiente, las tablas y


demás objetos de la base de datos seleccionada.

UNIVERSIDAD NACIONAL DE INGENIERIA 10


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

2.5 Como crear una fuente de datos en nuestro Proyecto

Para crear una fuente de datos en nuestro proyecto se de seleccionar desde el menú Data y ejecutamos
“Add New Data Source”, para que aparezca el asistente de creación de fuentes de datos.

El tratamiento de los distintos orígenes de datos con los que puede trabajar .NET. son basados de una
fuente de datos que puede interactuar con un servicio Web, una colección de objetos persistentes o un
servidor de bases de datos.

Si elegimos una base de datos, lo siguiente es indicar la conexión creada anteriormente o en todo caso crear
una nueva para generar la cadena de conexión.

UNIVERSIDAD NACIONAL DE INGENIERIA 11


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Al indicarle el servidor con el que nos vamos a conectar, debemos elegir los objetos de la base de datos que
vamos a incluir en la fuente de datos. Para este ejemplo elegiremos una sola tabla: Employees.

Una vez seleccionado los datos a conectarse en la ventana de “Data Sources” veremos el objeto
seleccionado. como se puede observar estamos dando exactamente los mismos pasos que si fuésemos a
definir un conjunto de datos con tipos o un adaptador de datos en la versión anterior de Visual Studio 2003,
asimismo en el explorador de soluciones se abra creado un nuevo objeto con el nombre
NorthwindDataSet.xsd.

Desde el archivo creado en el explorador de soluciones buscamos el archivo creado con la extensión .xsd le
damos doble Click, para observar dentro del DataSet la tabla creada.

UNIVERSIDAD NACIONAL DE INGENIERIA 12


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Type DataTable

Table Adapter
Query
Agregados

2.6 El Adaptador de Datos

El Adaptador de datos representa una clase que te permite realizar un conjunto de comandos desde la base
de datos hacia el cliente, es decir permite establecer una conexión a la base de datos para realizar llenados
de datos hacia un DataSet y actualizar el origen de datos de las modificaciones realizadas.

Al realizar una conexión y establecer la consulta a traer crea una tabla en el DataSet, y esto significa crear
además una clase adicional a la tabla correspondiente. Las clases generadas por este adaptador a diferencia
de lo que ocurre con los conjuntos de datos con tipos, no tienen ningún tipo de ancestro común.

El adaptador nos permite configurar métodos para adicionar consultas personalizadas, ejecución de
procedimientos almacenados, entre otros sobre la tabla agregada al conjunto de datos.

UNIVERSIDAD NACIONAL DE INGENIERIA 13


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Una vez seleccionado la adición de una nueva consulta, la pantalla siguiente será esta:

Dentro del siguiente cuadro de dialogo seleccionaremos que nos devuelva una simple consulta de todas las
opciones mostrada.

Luego dentro de ella se puede configurar la consulta generada por el ayudante.

UNIVERSIDAD NACIONAL DE INGENIERIA 14


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Luego se crearan los métodos que implementan el llenado de la data configurada.

Al visualizar nuevamente en el DataSet esta tabla quedaría configurada con los siguientes eventos creados:

A diferencia de Visual Studio, la muestra de datos es automática la generación de código par mostrar la
tabla o consulta, tan solo desde la ventana Data Source seleccionamos la tabla y la arrastramos al
formulario y se creara lo siguiente.

UNIVERSIDAD NACIONAL DE INGENIERIA 15


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

El cual generara el código siguiente:

Private Sub EmployeesBindingNavigatorSaveItem_Click(ByVal sender As...


Me.Validate()
Me.EmployeesBindingSource.EndEdit()
Me.EmployeesTableAdapter.Update(Me.NorthwindDataSet.Employees)
End Sub

Private Sub frmAdo_Load(ByVal sender As System.Object, ByVal e ...


'TODO: This line of code loads data into the 'NorthwindDataSet.Employees' table.
'You can move, or remove it, as needed.
Me.EmployeesTableAdapter.Fill(Me.NorthwindDataSet.Employees)
End Sub

Solo a modo de indicar que efectúa cada uno, el método EmployeesBindingNavigatorSaveItem realiza
la modificación de los registros hacia la base de datos, mientras que el método frmAdo_Load realiza la
muestra de información de la tabla Employees; para esto utiliza el adaptador de datos que contiene el
método para rellenar la tabla empleados EmployeesTableAdapter y se le indica el DataTable Employees
que se encuentra en el DataSet NorthwindDataSet.

2.7 Nuevo Control BindingSource

Para facilitar el enlace a datos de los controles, se ha añadido un nuevo componente de .NET 2.0: llamado
BindingSource que para este caso solo lo usaremos a nivel diseño. Este nuevo componente permite aislar
a los controles visuales de muestra de datos del origen de datos con el que deben trabajar. Tanto el control
como la barra de navegación harán referencia a estos componentes para realizar sincronización de avance o
desplazamiento de registros, en vez de usar directamente el conjunto de datos, que es lo que ocurría en las
versiones anteriores el cual era directo.

Aunque esta forma solo es recomendada al usar para vista de un DataGriView combinando con controles de
acceso a datos como los TextBox, al ejecutar el formulario se tendrá lo siguiente:

UNIVERSIDAD NACIONAL DE INGENIERIA 16


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

2.8 Del DataGrid al DataGridView

El control DataGridView a diferencia del DataGrid una forma mas eficaz y flexible para la muestra de datos
de un DataTable, a nivel diseño se mejoro el tratamiento sobre el mismo DataGridView y ya no sobre una
clase aparte como se hacia con el DataGrid. Con este nuevo control podemos mostrar vistas de solo lectura
o mostrar vistas modificables con el conjunto de datos asociados.

El control DataGridView nos permite adicionarle comportamientos personalizados para un determinado


conjunto de datos, para la ordenación, selección, edición, eliminación u otras acciones sobre el
DataGridView. Permite personalizar la apariencia o diseño con las propiedades que proporciona como filas
normales, filas alternantes, filas seleccionadas, etc.

Permite adicionar columnas con tipos de datos definidos o definir los tipos de datos de las columnas
existentes relacionada con el origen de datos asociadas.

2.9 Formas de presentación de datos en el control DataGridView.

En el control DataGridView se puede mostrar los datos en tres modos distintos: con enlace, sin
enlazar y en forma virtual.

Sin enlazar
El modo sin enlace sirve para mostrar cantidades de datos relativamente pequeñas que se
puedan manejar a nivel de programación para validaciones simples en forma temporal
mediante matrices o estructuras de datos.

1.- Ejemplo de mostrar datos sin enlazar:

Primero crearemos un formulario en el crearemos un DataGridView con el nombre


dgSinLace.

2.- Indicarle el número de columnas:

Me.dgSinEnlace.ColumnCount = 3

3.- Darle Formato al DataGridView:

With Me.dgSinEnlace.ColumnHeadersDefaultCellStyle
.BackColor = Color.Blue
.ForeColor = Color.Beige
.Font = New Font(Me.dgSinEnlace.Font, FontStyle.Bold)
End With

UNIVERSIDAD NACIONAL DE INGENIERIA 17


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

4.- Agregando Columnas con Estilo Definido:

With Me.dgSinEnlace
.Name = "Listado de Empleados SysCOM"
.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single
.CellBorderStyle = DataGridViewCellBorderStyle.Single
.GridColor = Color.Black

.Columns(0).Name = "Nombres"
.Columns(1).Name = "Apellidos"
.Columns(2).Name = "Areas"

.SelectionMode = DataGridViewSelectionMode.FullRowSelect
End With

5.- Agregando filas:

Dim fila1 As String() = {"Carlos Alberto", "Sobero Tuncar", "Venta"}


Dim fila2 As String() = {"Raul la Torre ", "Rojas Arpe", "Operaciones"}
Dim fila3 As String() = {"Ybeth Doyle", "Segura Panduro", "Contabilidad"}

With Me.dgSinEnlace.Rows
.Add(fila1)
.Add(fila2)
.Add(fila3)
End With

6.- Muestra del Formulario:

Enlazado
Este modo realiza un enlace determinado a un origen de datos mediante un DataSet, realizado
anteriormente con un Adaptador de datos.

Virtual
El modo virtual se usa para la muestra de grandes volúmenes de datos en formato de una tabla,
para esto se debe establecer la propiedad VirtualMode en true y así poder administrar la información
en la cache y poder trabajar sobre ella, se puede controlar las columnas que se quieren enlazar con
el origen de datos.

UNIVERSIDAD NACIONAL DE INGENIERIA 18


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Laboratorio 05:

I.- Crear un formulario con el nombre frmMDI, con las siguientes propiedades:

IsMdiContainer = True
WindowState = Maximized
Text = Sistema de Aplicaciones System – Com.Net

II.- Dentro de él agregar un MenuStrip con los siguientes elementos para el menú:

|&Persona |Ver &Reporte |&Ayuda


| Agregar &Clientes | Reporte de Clientes | Acerca de..
| Agregar &Empleados | Reporte de Empleados |

Luego agregar un ToolStrip y un StatusStrip, con los elementos mostrados en la imagen.

III.- Crear 2 formularios uno con el nombre frmEmpleado y frmReportes.

IV.- Del capitulo anterior, en el formulario frmLogin debemos cambiar para cuando el usuario se
autentifique se abra el formulario frmMDI.

V.- En el evento Load del formulario escribimos lo siguiente, para mostrar información de la aplicación:

Me.ToolStripSplitButton1.Text = "Usuario: Administrador"


Me.ToolStripSplitButton2.Text = "Base de Datos: NorthWind"
Me.ToolStripSplitButton3.Text = "Equipo: VBX-251"

VI.- En el Data Source, modificar el DataSet para que se muestren las tablas Customers y Employees.

Al realizar esto se crearan los controles tanto el DataSet como los Adaptadores de Datos a nivel diseño en el
cuadro de controles:

UNIVERSIDAD NACIONAL DE INGENIERIA 19


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

VI.- En el formulario frmReportes, a nivel diseño seleccionar estos controles y lo ubicamos sobre el
formulario, tanto para mostrar las tablas Customers y Employees, luego modificar el diseño como se
muestra en el siguiente diseño:

Para esto el DataGridView se llamara dgReportes, para los botones btnEmpleados y btnClientes.

VII.- El BindingSource creado en diseño cambiar su propiedad Name a BindingSource, luego dentro del
formulario crear los siguientes métodos:

Sub getEmpleados()
Me.Text = "Reporte de Empleados"
Me.EmployeesTableAdapter1.Fill(NorthwindDataSet1.Employees)
Me.dgReportes.DataSource = NorthwindDataSet1.Employees
End Sub

Sub getClientes()
Me.Text = "Reporte de Clientes"
Me.CustomersTableAdapter1.Fill(NorthwindDataSet1.Customers)
Me.dgReportes.DataSource = NorthwindDataSet1.Customers
End Sub

VIII.- Ahora en el formulario frmMDI se debe de llamar a estos métodos, que deben ser colocados dentro
de los botones correspondientes del ToolStrip y MenuStrip para las opciones “Ver Empleados” y “Ver
Clientes”.

Para Abrir el listado de Empleados:

'Mostramos los Empleados


frmReportes.MdiParent = Me
frmReportes.Show()
frmReportes.getEmpleados()
Me.ToolStripSplitButton1.Text = frmReportes.Text

UNIVERSIDAD NACIONAL DE INGENIERIA 20


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
Sistemas UNI. Instructor: V. Carlos, Segura P.
Microsoft Partner

Para Abrir el listado de Clientes:

'Mostramos los Clientes


frmReportes.MdiParent = Me
frmReportes.Show()
frmReportes.getClientes()
Me.ToolStripSplitButton1.Text = frmReportes.Text

X.- Todo estos eventos configurarlos, tanto en el control ToolStrip y MenuStrip

XI.- Al Salir del frmMDI, se debe cerrar la aplicación.

Obs.: La realización del formulario frmEmpleados será configurado en el capítulo siguiente, el formulario
frmClientes corresponde al capitulo anterior.

Realizar lo siguiente:

I.- Configurar los botones btnEmpleados y btnClientes para la muestra de las respectivas tablas.

UNIVERSIDAD NACIONAL DE INGENIERIA 21


FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS

Potrebbero piacerti anche