Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Windows Forms
Windows Forms
Windows Forms
Uno de los principales objetivos de la educacin debe ser ampliar las ventanas por las cuales vemos
al mundo
La caridad es un deber; la eleccin de la forma, un derecho.
Tabla de Contenido
Windows Forms .......................................................................................................................5.2
Creacin de Proyectos .............................................................................................................5.4
El espacio de nombres System.Windows.Forms......................................................................5.6
Insertando controles dentro de la forma ...................................................................................5.7
Insercin de Cdigo ...............................................................................................................5.10
Caja de Mensajes (MessageBox)...........................................................................................5.16
Caja de Seleccin ..................................................................................................................5.23
Visor de Imgenes y Enlaces .................................................................................................5.26
Web Browser y Creacin de Mens .......................................................................................5.30
Formas que llaman a otras formas .........................................................................................5.33
Creacin de Propiedades en una Clase .............................................................................5.36
Matrices en dataGridView...................................................................................................5.38
Creacin de Mens ............................................................................................................5.40
5.1
Windows Forms
Windows Forms es una de las dos tecnologas que se utiliza en Visual C# para crear
aplicaciones cliente inteligentes basadas en Windows que se ejecutan en .NET Framework.
Windows Forms es especialmente adecuado para escenarios de desarrollo rpido de
aplicaciones donde la prioridad principal no es una interfaz grfica de usuario compleja. El
Diseador de Windows Forms se utiliza para crear la interfaz de usuario, y permite obtener
acceso a otras caractersticas de diseo y ejecucin, tales como las siguientes:
Implementacin ClickOnce.
Uso avanzado de bases de datos mediante DataGridView (Control, formularios
Windows Forms).
Barras de herramientas y otros elementos de interfaz de usuario que pueden tener el
aspecto y el comportamiento de Microsoft Windows XP, Microsoft Office o Microsoft
Internet Explorer.
En Visual C#, podemos utilizar el Diseador de Windows Forms o el Diseador de Windows
Presentation Foundation (WPF) para crear interfaces de usuario de forma rpida y cmoda.
Los tres pasos bsicos para crear interfaces de usuario son:
1. Agregar los controles a la superficie de diseo.
2. Establecer las propiedades iniciales de los controles.
3. Escribir los controladores para los eventos especificados.
Agregar controles
En cualquiera de los diseadores se utiliza el mouse para arrastrar controles, que son los
componentes con representacin visual, como botones y cuadros de texto, hasta una superficie
de diseo
A medida que se trabaja visualmente, el Diseador de Windows Forms traduce las acciones en
cdigo fuente de C# y las escribe en un archivo de proyecto llamado nombre.designer.cs donde
nombre es el nombre asignado al formulario. De igual forma, WPF Designer traduce las
acciones de la superficie de diseo a cdigo de lenguaje de marcado de aplicaciones
extensible (XAML) y lo escribe en un archivo de proyecto que se denomina Window.xaml.
Cuando se ejecuta la aplicacin, ese cdigo fuente (Windows Forms) o cdigo XAML (WPF)
ajustar la posicin y el tamao de los elementos de la interfaz de usuario de modo que
aparezcan como en la superficie de diseo.
Establecer propiedades
Despus de agregar un control a la superficie de diseo, podemos utilizar la ventana
Propiedades para establecer sus propiedades, como son el color de fondo y el texto
predeterminado.
5.2
5.3
Creacin de Proyectos
Para abrir Visual C# Express Edition 2008 ejecutamos el programa directamente o con los
acceso directos.
5.4
En el cuadro de herramientas
tenemos tres opciones desde
cerrar para desaparecer el
cuadro, ocultar automticamente
o colocarla flotante, acoplable,
etc.
5.5
Detalles
La mayora de las clases dentro de este espacio de
nombres derivan de la clase Control. La clase Control
provee la funcionalidad bsica para todos los controles
Control, Control de que se despliegan en una forma. La clase Form representa
usuario y Forma
una ventana en una aplicacin. Esta incluye cajas de
dialogo, ventanas modales e Interfaces de Mltiple
Documento. Tambin se pueden crear controles propios de
usuario derivndolos de la clase UserControl.
Las Formas contienen un conjunto muy rico de clases para
crear sus propias barras de herramientas y mens con
apariencia
moderna
y
comportamiento.
ToolStrip,
Mens y Toolbars
MenuStrip, ContextMenuStrip y StatusStrip se pueden usar
para crear barras de herramientas, barras de men, mens
de contexto y barras de status respectivamente.
Este espacio de nombres provee una variedad de clases
control que se pueden usar para crear interfaces de
Controles
usuario como TextBox, ComboBox, Label, ListView, Button,
WebBrowser, HtmlDocument, MaskedTextBox y PropertyGrid.
Algunas clases ayudad a controlar la distribucin de una
Layout
superficie
de
despliegue
como:
FlowLayoutPanel,
TableLayoutPanel y SplitContainer.
Las formas Windows definen una arquitectura ideal para
ligarlas a fuentes de datos tales como bases de datos y
Data y Data Binding
archivos
XML,
estos
controles
son:
DataGridView,
BindingNavigator, BindingSource
Adems de controles este espacio de nombres provee otras
clases que no derivan de la clase Control pero que
proveen caractersticas visuales a una aplicacin
Componentes
Windows. Tales clases como ToolTip y ErrorProvider
proveen informacin al usuario as tambin las clases
Help y HelpProvider.
Windows provee cajas de dialogo con propsitos especiales
como son OpenFileDialog, SaveFileDialog, FontDialog,
Cajas
de
Dilogos PageSetupDialog, PrintPreviewDialog y PrintDialog. Este
comunes
espacio de nombres provee la clase MessageBox para
desplegar una caja de mensaje que puede desplegar y
obtener datos del usuario.
Las Formas contienen un conjunto muy rico de clases para
Mens y Toolbars
crear sus propias barras de herramientas y mens con
apariencia
moderna
y
comportamiento.
ToolStrip,
5.6
5.7
Algunas propiedades tienen un botn a la izquierda con un signo + lo cual indica que estas
propiedades se componen de varias partes, por ejemplo en Font aparece el smbolo de mas
porque es posible cambiar el tipo de letra.
y un botn
.
El objetivo de las etiquetas es proveer de los elementos
necesarios para ingresar dos nmeros y efectuar la
multiplicacin mostrando el resultado.
Por default Visual C# asigna los nombres a las etiquetas como label1, label2, button1,
textBox1, etc. Desde la ventana propiedades podemos modificar el nombre y las
caractersticas de la ventana. En la imagen siguiente se muestra el procedimiento a seguir para
cambiar las propiedades de cualquier elemento, en particular, la imagen se refiere al cambio
de propiedades del control button1.
Otra forma de ver las propiedades es seleccionar cualquier control damos clic con el botn
derecho en la opcin Propiedades y automticamente nos muestra las propiedades de dicho
control, esto se ilustra en la siguiente figura:
5.8
Las figuras siguientes muestran ambas formas antes y despus de ser modificadas.
5.9
Insercin de Cdigo
Antes de describir como insertar cdigo
en
nuestra aplicacin
es
muy
importante identificar el nombre de cada
uno de los controles, en la imagen se
identifican cada uno de ellos, dichos
nombres los asigna automticamente
Visual C# al insertar cada control, es
posible cambiar el nombre de cada uno
de ellos,
al seleccionarlo y en la
ventana de Propiedades, apartado
Diseo campo (Name) modificar el
nombre , en nuestro ejemplo vamos a
dejar intactos cada nombre de los
controles utilizados esto facilita la
programacin de nuestra aplicacin
pues es ms fcil identificar los
elementos. Un error comn es confundir
esta propiedad con Text en el apartado
Apariencia cambiamos button1 por Multiplicar, esto debido a que inicialmente Visual C#
asigna el mismo nombre en ambas propiedades, pero uno es como se observa en la ventana
dentro de la forma y la propiedad (Name) en Diseo es como lo identifica Visual C# al
momento de programar.
5.10
Para insertar cdigo es importante identificar la utilidad de cada control insertado como se
describe en la siguiente tabla.
Control (Diseo)
Control (Apariencia)
label1
Operador 1
textBox1
----------
label2
Operador 2
textBox2
----------
button1
Multiplicar
textBox3
----------
Objetivo
Mostrar un texto que ayude al
usuario a identificar que dato
debemos introducir.
Recibir un nmero .
Mostrar un texto que ayude al
usuario a identificar que dato
debemos introducir.
Recibir otro nmero.
Dar clic en el botn para realizar
la multiplicacin de los datos
introducidos en textBox1 y textBox2
Mostrar
el
resultado
de
la
multiplicacin.
El cdigo que se inserta aparece encerrado en el rectngulo, vemos que el mtodo se llama
button1_Click que nos indica que realizar cuando demos doble clic sobre el botn.
5.11
En la lnea 51 double ct1, ct2; declaramos dos variable de tipo doubl esto llamadas ct1 y
ct2 para hacer referencia a cuadro de texto 1 y 2, el tipo es para que podamos multiplicar
cualquier tipo de nmero y no solo enteros.
ct1 = Convert.ToDouble(textBox1.Text); lnea 53 extrae la entrada del usuario de
textBox1 y lo convierte a doble esto debido a que por default la entradas las maneja como
cadena y el valor se lo asignamos a ct1.En la lnea 54 es similar pero para el cuadro de texto
dos.
En textBox3 es donde mostramos el resultado de la multiplicacin, para dar formato
escribimos {0:F2} el cero significa que es el primer argumento, la letra F que vamos a
imprimir un valor de tipo doble y el nmero 2 permite imprimir el resultado con dos decimales. Y
multiplicamos los valores ct1*ct2 que es el resultado que aparecer en textBox3.
En la lnea 56 String.Format La clase String dispone del mtodo Format que nos permite
formatear una expresin.
Podemos copiar el cdigo aqu:
Multiplica.cs
// cdigo que debemos insertar en el mtodo button1_Click
private void button1_Click(object sender, EventArgs e)
{
double ct1, ct2;
// extrae la entrada del usuario
ct1 = Convert.ToDouble(textBox1.Text);
ct2 = Convert.ToDouble(textBox2.Text);
// muestra el resultado
textBox3.Text =String.Format("{0:F2}", ct1*ct2);
}
5.12
5.13
Mostramos el cdigo sombreado en color amarillo, para el botn 2, que nos sirve para limpiar
los campos de las tres cajas de texto, despus de realizar un clculo podemos limpiar el campo
con este botn.
5.14
5.15
5.16
Este mtodo Show de MessageBox siempre nos regresar un resultado del tipo DialogResult y
ste depender del botn que oprimamos al cerrar el dialogo de Mensaje. DialogResult es
una enumeracin que tiene los siguientes valores:
DialogResult.OK
DialogResult.Cancel
DialogResult.Yes
DialogResult.No
DialogResult.Ignore
DialogResult.Abort
DialogResult.Retry
2 Etiquetas (Label)
1 Botn (Button)
5.17
Propiedad
Text
Text
Name
Text
Text
Text
Text
Text
Checked
Text
Text
Text
Text
Text
Text
Checked
Text
Text
Text
Valor
Ejemplos MessageBox
Elige el MessageBox para visualizarlo
label2
== nada ==
Visualizar
Tipo de botn
Tipo de icono
OK
True
OK Cancel
Yes
No
Yes
No
Cancel
Retry
Cancel
Abort Retry Cancel
Information
True
Exclamation
Question
Error
5.18
Ahora programemos el evento para que se genere un cambio en la seccin Tipo de Botn del
lado izquierdo, teniendo seleccionado el radioButton1 con etiqueta OK, hagamos clic en el
botn que tiene un rayo en la ventana de propiedades (para seleccionar eventos) y
seleccionemos CheckedChange, a la derecha escribamos como nombre para el mtodo que se
va a ejecutar cuando este evento se lleve a cabo, tipoDeBoton_CheckedChange, hagamos lo
mismo para los otros cinco radioButtons restantes seleccionando siempre el mismo mtodo.
Lo que sigue es agregar una variable privada a la clase y lo hacemos antes del constructor:
private MessageBoxButtons tipoDeBoton = MessageBoxButtons.OK;
5.19
5.20
Lo que sigue es agregar una variable privada a la clase y lo hacemos tambin antes del
constructor:
private MessageBoxIcon tipoDeIcono = MessageBoxIcon.Error;
Luego insertemos el siguiente cdigo para el mtodo tipoDeIcono_CheckedChanged
private void tipoDeIcono_CheckedChanged(object sender, EventArgs e)
{
if (sender == radioButton7) // display error icon
tipoDeIcono = MessageBoxIcon.Information;
else if (sender == radioButton8)
tipoDeIcono = MessageBoxIcon.Exclamation;
else if (sender == radioButton9)
tipoDeIcono = MessageBoxIcon.Question;
else // only one option left--display question mark
tipoDeIcono = MessageBoxIcon.Error;
}
Como en el primer mtodo, se investiga cual de los radioButtons (mediante sender) cambi su
estatus de desactivado a activado y se pone la variable tipoDeIcono con uno de los cuatro
posibles valores que tiene la enumeracin MessageBoxIcon.
Por ltimo queremos programar el botn Mostrar para que al hacer clic sobre l se ejecute el
mtodo button1_Click desplegando el MessageBox configurado con el valor que en su
momento tengan las variables tipoDeBoton y tipoDeIcono.
private void button1_Click(object sender, EventArgs e)
{
DialogResult result =
MessageBox.Show("Mensaje a desplegar",
"Ttulo de la Ventana",
5.21
tipoDeBoton,
tipoDeIcono);
switch
{
case
case
case
case
case
case
case
}
(result)
DialogResult.OK: label2.Text = "Seleccion OK."; break;
DialogResult.Cancel: label2.Text = "Seleccion Cancel."; break;
DialogResult.Yes: label2.Text = "Seleccion Yes."; break;
DialogResult.No: label2.Text = "Seleccion No."; break;
DialogResult.Ignore: label2.Text = "Seleccion Ignore."; break;
DialogResult.Abort: label2.Text = "Seleccion Abort."; break;
DialogResult.Retry: label2.Text = "Seleccion Retry."; break;
}
El cdigo fuente completo de nuestro proyecto puede consultarse en el apndice 5: Caja de
Mensajes -- Form1.cs
A continuacin dos ejecuciones de nuestro programa:
5.22
Caja de Seleccin
Ahora crearemos un nuevo proyecto C# del tipo de Aplicacin de Windows Forms, al que
llamaremos CajadeSeleccion.
A la forma principal Form1 agreguemos los siguientes controles:
4 Etiquetas (Label)
12 Cajas de seleccin (CheckBox)
2 Botones (Button)
En la etiqueta uno escribimos el texto UACM POO en C#, las otras tres etiquetas las
utilizaremos para colocar los ttulos Estilo, Fuente, Tamao, las doce cajas de seleccin
nos ayudaran a modificar el texto de la etiqueta uno en cuanto al tipo de letra, tamao y estilo,
el botn Salir cierra la aplicacin y el botn Limpiar, regresa al texto original sin aplicar
ningn formato.
En la siguiente figura observamos como quedara el diseo de la forma:
5.23
Este sera el cdigo del mtodo para cambiar el texto de la etiqueta uno a negrita:
private void Negrita_CheckedChanged(object sender, EventArgs e)
{
this.label1.Font = new Font(this.label1.Font.FontFamily,
this.label1.Font.Size, this.label1.Font.Style ^ FontStyle.Bold);
}
Repetimos el mismo paso para crear otros tres mtodos para cambiar al estilo itlica, tachado o
subrayado, lo que harn estos mtodos es cambiar la fuente de la etiqueta label1 para que el
estilo cambie a Bold o Italic o Strikeout o Underline
El principio que estamos usando aqu es el hecho de que para crear una Fuente hay que
hacerlo de la siguiente manera
new Font(FontFamily family, float emSize, FontStyle style);
donde FontFamily es una familia de fuentes como por ejemplo Arial o Consolas y
FontStyle puede ser Bold, Italic, Strikeout, Underline o la combinacin de ellos, el
tamao se pude especificar con un nmero por ejemplo 10, 12, 20.
Para cambiar el tipo de fuente de la etiqueta nuevamente al evento CheckedChanged de cada
una de las cuatro cajas de seleccin agreguemos un mtodo pulsando con el mouse a la
derecha del evento que queremos y escribimos el siguiente cdigo:
private void Consolas_CheckedChanged(object sender, EventArgs e)
{
FontFamily csl = new FontFamily("Consolas");
this.label1.Font = new Font(csl, this.label1.Font.Size,
this.label1.Font.Style);
}
5.24
csl es el nuevo tipo de fuente que creamos puede llamarse como queramos respetando la
reglas de identificadores vlidos, entre comillas en color rojo aparece "Consolas" aqu
debemos seleccionar un tipo de fuente vlido podemos ver la ventana de propiedades cuando
cambiamos la fuente los tipos disponibles o tambin en el procesador de texto Word de Office
los tipos de fuentes, realizamos lo mismo para los otros tres tipos de fuentes.
Finalmente en la ltima columna con las cuatro cajas de seleccin cambiamos el tamao del
texto de la etiqueta uno con un procedimiento similar a los dos anteriores primero configurando
el evento y despus escribiendo en el mtodo lo siguiente:
private void Ocho_CheckedChanged(object sender, EventArgs e)
{ this.label1.Font = new Font(this.label1.Font.FontFamily, 8,
this.label1.Font.Style);
}
Observemos que nuevamente aqu de los tres parmetros o argumentos solo modificamos el
tamao.
En cuanto a los botones el botn salir solo agregamos el cdigo: Close();
private void button1_Click(object sender, EventArgs e)
{
Close();
}
El botn limpiar regresa el texto de la etiqueta uno al formato original, por ejemplo si
cambiamos el tipo de letra a Broadway, Tachado y tamao 20, al darle limpiar simplemente
regresamos al texto con el formato original para saber cul era el formato original
seleccionamos la etiqueta uno y en propiedades vemos el tipo de letra y tamao utilizado.
private void button2_Click(object sender, EventArgs e)
{
FontFamily mss = new FontFamily("Microsoft Sans Serif");
this.label1.Font = new Font(mss, 12, FontStyle.Regular);
}
Si observamos aqu para cambiar el estilo del texto utilizamos simplemente
FontStyle.Regular, por otro lado en las cajas de seleccin escribimos
this.label1.Font.Style ^ FontStyle.Bold, esto se debe a que si utilizamos la forma
ms simple es decir FontStyle.Bold, solo lo efectuara una vez y despus ya no lo
cambiara debido a que no especificamos a que control deseamos aplicar el cambio.
5.25
5.26
Al botn 1 que dice Elegir Imagen al darle doble clic nos traslada al cdigo e insertamos lo
siguiente:
private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{ // Carga la imagen dentro del cuadro picture box.
pictureBox1.Image= Image.FromFile(openFileDialog1.FileName);
// Muestra el nombre del archivo en el titulo de forma
5.27
En la segunda parte del proyecto se refiere a los Enlaces, usamos el control linkLabel el cual
tiene la peculiaridad de poseer una liga (como las pginas Web) a directorios de nuestro
sistema de archivos, a direcciones electrnicas de sitios Web o FTP y tambin a aplicaciones
que se encuentren en el Registro de Windows.
Ya tenemos agregados los tres linkLabel, ahora necesitamos la programacin de los eventos
de hacer click en el control, en los tres eventos utilizaremos la llamada del mtodo:
System.Diagnostics.Process.Start(parametros);
5.28
5.29
5.30
Como segundo paso vamos agregar el comboBox y llenarlo, un ComboBox provee una lista
desplegable de opciones que el usuario puede seleccionar. En este programa, el ComboBox
contendr una lista de nuestros sitios Web favoritos para tener un rpido acceso. Para crear la
lista de sitios, seleccionar el ComboBox y visualizar sus propiedades. Hacer clic en la columna
junto a la propiedad Items, y aparecer Coleccin y adelante un cuadro con puntos
suspensivos hacer clic en ese botn para editar el contenido del ComboBox. Aadir tantas ligas
de sitios Web como se desee, presionando enter tras introducir cada una de ellas.
Insertamos dos botones uno que seleccionara el link o enlace al cual queremos ir y el segundo
para salir del programa, luego vamos a insertar el control webBrowser y ajustarlo al tamao
adecuado.
Ahora ya hemos finalizado la fase de diseo de nuestra aplicacin, y hemos llegado al punto
donde necesitamos aadir algn cdigo en C# para proporcionar la funcionalidad del programa.
Necesitamos aadir controladores para el botn y para cada opcin de men. Un controlador
es un mtodo que se ejecuta cuando se activa un determinado control. Visual C# Express crea
controladores vacos para nosotros automticamente. Hacer doble clic sobre el botn, y
aparecer el editor de cdigo para nuestro proyecto. Veremos que el controlador para el evento
asociado al evento de mensaje que sucede cuando el usuario hace clic sobre un botn ha sido
creado por nosotros. Aadir cdigo al mtodo del controlador de modo que tenga una
apariencia similar al ejemplo siguiente.
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Navigate(comboBox1.SelectedItem.ToString());
}
5.31
Este cdigo toma el elemento del control ComboBox que est seleccionado, una cadena que
contiene una URL Web, y lo pasa al mtodo de navegacin del navegador Web. El mtodo de
navegacin carga y visualiza el contenido de una pgina Web en esa ubicacin.
Vamos a aadir el cdigo para las opciones del men, (volver a la ventana de diseo o
diseador presionar Shift + F7 y para ir al cdigo insertar F7), hacer doble clic sobre cada
uno de los elementos de men. Visual C# Express crea mtodos de controladores para cada
uno. Editar estos mtodos de modo que tengan una apariencia similar al cdigo siguiente.
private void homeToolStripMenuItem_Click(object sender, EventArgs e)
{ // Opcin del Men Home o Pgina Principal
webBrowser1.GoHome();
}
private void adelanteToolStripMenuItem_Click(object sender, EventArgs
{ // Opcin del Men Adelante
webBrowser1.GoForward();
}
private void atrasToolStripMenuItem_Click(object sender, EventArgs e)
{
// Opcin del Men Atras
webBrowser1.GoBack();
}
La ltima tarea es aadir cdigo de inicializacin al mtodo Form1. Este mtodo es el
constructor para el objeto Form1 y se invoca cuando se crea el Windows Form. Es, por tanto, la
ubicacin ideal para situar cualquier cdigo que se requiera para cambiar los valores iniciales
de los controles u otras configuraciones. El siguiente cdigo provocar que el control Web
Browser visualice la pgina de inicio por defecto en nuestro ordenador, y tambin establecer
el valor inicial del ComboBox. Cambiar el mtodo para que contenga el siguiente cdigo:
public Form1()
{
InitializeComponent();
comboBox1.SelectedIndex = 0;
webBrowser1.GoHome();
}
El cdigo fuente completo de nuestro proyecto puede consultarse en el apndice 5:
WebBrowser_Menus -- Form1.cs
Un ejemplo de la ejecucin del proyecto:
5.32
5.33
Una vez llena la forma de captura Form3, la informacin es pasada a Form1, en la forma 3
tenemos 5 campos a llenar, Calle, Colonia, Delegacin, Cdigo Postal y Telfono, una vez
que llenamos estos datos y damos clic al botn OK, automticamente los datos los copia a la
forma 1, a las etiquetas label2, label3, label4, label5 y label6, respectivamente.
Podemos dejar en blanco el campo Text de estas 5 etiquetas, para ilustra estos controles
aparecen en el proyecto. Este es un ejemplo de la ejecucin:
5.34
5.35
Matrices en dataGridView
El control DataGridView proporciona una tabla personalizable para mostrar datos. La clase
DataGridView permite personalizar celdas, filas, columnas y bordes mediante propiedades.
El siguiente proyecto suma dos matrices cuadradas de NxN, consta de 3 dataGridViews en
primer lugar se le asignan columnas y filas segn el tamao que le asignemos a la matriz por
default, as como dos botones los cuales uno es para calcular el tamao de la matriz y rellenar
los valores aleatorios dentro del grid, y el segundo botn nos sirve para calcular la suma de las
dos matrices. Podemos modificar los valores de nuestros grids, y volver a sumar, para obtener
la matriz resultante.
Controles utilizados:
4 Etiquetas (Label)
3 Grid (dataGridView)
2 Botones (Button)
1 Caja de texto (textBox)
El proyecto en vista del diseador tendr la siguiente apariencia:
5.39
Creacin de Mens
El siguiente proyecto muestra la creacin de mens, utilizamos tres etiquetas y mediante las
opciones del men Formato y Fondo, cambiamos el color de fondo, el tipo y color de la fuente
o letra, mediante el men Acerca de mostramos informacin de contacto del autor del
proyecto y la opcin Salir. Como parte complementaria y para no incluirla en un solo proyecto
agregamos el control dateTimePicker y el botn Fecha, esto simplemente muestra un
calendario seleccionamos una fecha y al dar clic en el botn nos muestra la fecha elegida y del
da actual, esto con ayuda de un MessageBox.Show.
5.40
Controles utilizados:
3 Etiquetas (Label)
1 Men (menuStrip)
1 DateTimePicker
1 Botn (Button)
Con ingresar un solo menuStrip se pueden derivar todos los mens que necesitemos, en las
siguientes imgenes se muestran cada una de las opciones del men, es importante aclarar
que la opciones que aparecen como Ctrl+N, Ctrl+B, Ctrl+S, no se escriben si no son
accesos rpidos para trabajar con el proyecto por ejemplo con Ctrl+S, sale uno del proyecto,
en la siguiente pantalla se muestra como se configura esta propiedad.
5.41
En las siguientes figuras se muestra a detalle cada una de las opciones del men:
El cdigo del botn fecha nos da la informacin de la fecha seleccionada y el da actual junto
con la hora, su cdigo es:
private void button1_Click(object sender, EventArgs e)
{
// Muestra la fecha seleccionada:
MessageBox.Show("Has seleccionado la fecha: " +
dateTimePicker1.Value.Date);
// Muestra la fecha de hoy:
MessageBox.Show("Hoy es: " + DateTime.Now);
}
5.42
5.43