Microsoft Partner
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.
4 WINDOWS FORMS
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.
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.
El control MenuStrip se encuentra agrupado por los controles “Menus & Toolbars”.
Elementos de un MenuStrip
MenuItem
ComboBox
Separator
TextBox
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”.
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.
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:
ToolStripControlHost
Aloja controles personalizados o controles de formularios Windows Forms.
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
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:
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.
'Mostramos la pagina:
Me.WebBrowser1.Navigate(sUrl)
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.
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
Conection
DataAdapter
DataSet
BindingSource
DataTable’s
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:
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
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.
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.
Type DataTable
Table Adapter
Query
Agregados
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.
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.
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.
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.
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:
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.
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.
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.
Me.dgSinEnlace.ColumnCount = 3
With Me.dgSinEnlace.ColumnHeadersDefaultCellStyle
.BackColor = Color.Blue
.ForeColor = Color.Beige
.Font = New Font(Me.dgSinEnlace.Font, FontStyle.Bold)
End With
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
With Me.dgSinEnlace.Rows
.Add(fila1)
.Add(fila2)
.Add(fila3)
End With
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.
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ú:
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:
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:
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”.
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.