NET2_WinForm_Diseño_Aplicacion_Windows_Forms
-
Upload
lizy-casas -
Category
Documents
-
view
26 -
download
1
Transcript of NET2_WinForm_Diseño_Aplicacion_Windows_Forms
-
1Fundamentos de Interaccin P O d dPersona-Ordenador
7. Diseo de una aplicacin Windows Forms en VB.NET
Lus Rodrguez Baena ([email protected])
Universidad Pontificia de Salamanca (campus Madrid)Escuela Superior de Ingeniera y Arquitectura
-
2Programacin en Windows
Programacin convencional (lineal)g ( ) Acciones previsibles e independientes del entorno donde se
ejecutan. Opciones de usuario limitadas a las posibilidades que el Opciones de usuario limitadas a las posibilidades que el
programador dicte.9 El control de las opciones se hace por medio de bucles y estructuras
selectivas.
No adecuada para entornos grficos o multitarea.9 El nmero de eventos disponibles es demasiado grande para poder
controlarlos todos.9 La eleccin de orden del proceso de eventos es compleja.9 La estructura de un programa lineal no facilita la espera a que se
produzcan los eventos.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
2
-
3Programacin en Windows (II)
Conceptos clave en la programacin en Windows. Ventanas.
9 Regin de la pantalla.o Ventanas de documentos, botones, listas desplegables, cuadros de dilogo.
9 El SO administra todas las ventanas asignndolas un identificador9 El SO administra todas las ventanas asignndolas un identificador. Eventos.
9 Accin que se ejecuta sobre el sistema.9 El sistema operativo rastrea continuamente las ventanas en busca deEl sistema operativo rastrea continuamente las ventanas en busca de
sucesos. Mensajes.
9 Cuando se produce un evento se enva un mensaje al sistema operativooperativo.
9 El mensaje guarda informacin sobre el suceso y la ventana que lo ha producido.
9 El sistema operativo lo registra y almacena en una cola de mensajes.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
3
-
4Programacin en Windows (III)
Programacin orientada a eventos El entorno (sistema operativo, usuario, etc.) puede actuar sobre el
programa en cualquier momento. El programa debe responder a las acciones del entorno no
proporcionadas de forma linealproporcionadas de forma lineal. No se debe prever un desarrollo lineal del flujo del programa.
9 Las distintas acciones se activan como respuesta a sucesos que ocurren en el entorno.
Al j t li i b d t Al ejecutarse una aplicacin basada en eventos9 Windows rastrea las ventanas.9 Si se detecta un evento en alguna ventana manda un mensaje al sistema
operativo y lo almacena en la cola de mensajes9 El sistema operativo lo procesa y lo transmite a las dems ventanas,
indicando el evento y el identificador de la ventana que lo produce (Handle).
9 La aplicacin busca el controlador de eventos asociado a ese evento en el t l i i t j t l di di t
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
4
control y, si existe, ejecuta el cdigo correspondiente.
-
5Programacin en Windows (IV)
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
5
-
6Programacin en Windows (V)
Estructura de un procedimiento de evento.p Cada componente de Windows Forms tiene asociado una serie
de eventos a los que responde.9 Los controladores de eventos tienen dos argumentos:Los controladores de eventos tienen dos argumentos:
o Sender, de tipo Object y tiene una referencia al objeto que lo ha producido.
o e, un objeto de la clase EventArgs o alguna de sus derivadas con i f i d l tinformacin del evento.
9 El nombre corresponde con el nombre del control.9 La clusula Handles indica que mtodos de eventos estn
asociados al procedimientoasociados al procedimiento.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
6
-
7Programacin en Windows (VI)
Private Sub MiEvento(ByVal sender As System.Object, _B V l A S t E tA )ByVal e As System.EventArgs) _Handles MiBotn.Click, MiBotn.Leave, OtroBotn.Click
MessageBox.Show("Se ha pulsado MiBotn, se ha pulsado OtroBotn " & _"o MiBotn a perdido el foco")
If sender Is MiBotn ThenMessageBox.Show("Se ha pulsado MiBotn o MiBotn ha perdido el foco")
ElseMessageBox.Show("Se ha pulsado OtroBotn")
End IfEnd SubEnd Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
7
-
8Programacin en Windows (VII)
La instruccin AddHandler, permite asociar un evento a un controlador de eventos determinado, distinto del procedimiento de evento predeterminado.eventos determinado, distinto del procedimiento de evento predeterminado. Esto permite activar y desactivar los eventos a voluntad.
AddHandler NombreObjeto.NombreEvento, AddressOf NombreControladorDeEventos
AddHandler MiBotn.Click, AddressOf MiEventoAddHandler MiBotn Leave AddressOf MiEventoAddHandler MiBotn.Leave, AddressOf MiEventoAddHandler OtroBotn.Click, AddressOf MiEventoPrivate Sub MiEvento(ByVal sender As Object, _
ByVal e As EventArgs) 'No lleva clasula HandlesMessageBox.Show("Se ha pulsado MiBotn " & g ( p _
"u OtroBotn " & _"o MiBotn ha perdido el foco")
If sender Is MiBotn ThenMessageBox.Show("Se ha pulsado MiBotn " & _
"o mi botn ha perdido el foco")Else
MessageBox.Show("Se ha pulsado OtroBotn")End If
End Sub
La instruccin RemoveHandler permite desactivar un controlador de eventos
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
8
La instruccin RemoveHandler, permite desactivar un controlador de eventos.RemoveHandler NombreObjeto.NombreEvento, AddressOf NombreControladorDeEventos
-
9Aplicaciones Windows Forms
Se desarrolla alrededor de uno o ms formularios. Generacin automtica de cdigo.
Visual Studio genera cdigo en tres sitios distintos:9 Archivo Application.Designer.vb.
Uno por proyectoo Uno por proyectoo Est dentro del directorio My Proyect del proyecto.o Incluye las caractersticas generales de la aplicacin y formulario o mdulo de
arranque.9 Archivo FormX.Designer.vb.Archivo FormX.Designer.vb.
o Uno por formulario.o Dentro del directorio de proyecto.o Implementacin parcial de la clase Form.o Incluye el cdigo necesario para crear y destruir los controles que se incluyan en y g p y q y
el formulario.9 Archivo FormX.vb.
o Clase FormX con la declaracin del resto de la clase.o Incluye el cdigo de usuario para manejar la aplicacin
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
9
-
10
Tareas comunes: texto
Propiedad Text.E t bl bti l t t i d l t l Establece u obtiene el texto asociado al control.
Presente en todos los controles que tienen texto esttico o editable. En texto esttico, el carcter & se utiliza para determinar la tecla de
acceso. Propiedad TextAlign.
Alineacin del texto Presente en los controles Label, TextBox, Button, CheckBox,
RadioButton NumericUpDown y DomainUpDownRadioButton, NumericUpDown y DomainUpDown. Para los controles Label, Button, CheckBox y RadioButton puede
tomar alguno de los valores de la enumeracin ContentAligment.9 BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight, TopCenter , TopLeft, TopRight., g , p , p , p g
Para el resto puede tomar alguno de los valores de la enumeracin HorizontalAligment.9 Center, Left, Right.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
10
-
11
Tareas comunes: color
Propiedades ForeColor y BackColor. Establece u obtienen el color de primer plano y el color de fondo. Su valor es un dato de la estructura System.Drawing.Color.
Miembros de la estructura Color. Mtodo esttico Color.FromArgb(rojo, verde, azul). Mtodo esttico Color.FromKnownColor(nombreColorConocido). Mtodo esttico Color.FromName(cadena).( ) Propiedades R, G, B.
MiBotn.BackColor = Color.FromArgb(0, 0, 255) 'Color de fondo azulMe.BackColor = Color.FromKnownColor(KnownColor.Yellow) AmarilloOtroBotn.BackColor = Color.FromName("Green") 'Color de fondo verdeDim c As System.Drawing.Color = MiBotn.BackColorMessageBox.Show(c.R & "-" & c.G & "-" & c.B) 'Devuelve 0-0-255
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
11
-
12
Tareas comunes: fuentes
Propiedad Font. Hace referencia a un objeto S stem Dra ing Font Hace referencia a un objeto System.Drawing.Font. En tiempo de ejecucin la modificacin de las caractersticas de la fuente implica la creacin
de una nueva instancia de la clase.
'Para cambiar el estilo de la fuente a negrita'MiBotn Font Bold = True no es vlido
Las fuentes de los componentes de un objeto contenedor, toman las caractersticas de los objetos contenidos.
MiBotn.Font.Bold True no es vlidoMiBotn.Font = New Font(MiBotn.Font, FontStyle.Bold)
Propiedades del objeto Font
Propiedad Descripcin Valores
Bold Obtiene un valor que indica si el objeto Font est en negrita True o False
Italic Obtiene un valor que indica si el objeto Font est en cursiva True o False
Name Obtiene una representacin del tipo de letra del objeto Font Cadena
Size Obtiene el tamao del objeto Font Real de simple precisin
Strikeout Otiene un valor que indica si el objeto Font est tachado True o False
Underline Otiene un valor que indica si el objeto Font est subrayado True o False
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
12
Unit Obtiene la unidad de medida del objeto Font Un miembro de GraphicsUnit (Inch, Millimeter, Point,)
-
13
Tareas comunes: tamao y posicin
Propiedad Location.p Hace referencia a una estructura de tipo System.Drawing.Point que identifica la posicin de la esquina superior izquierda del componente.qu a up o qu da d o po
Estructura Point.9 Constructor: Point(X,Y).9 Propiedades X e Y.Propiedades X e Y.
Se puede establecer en tiempo de diseo (ventana de propiedades) o de ejecucin.9 Ejemplo:9 Ejemplo:'Pone el botn en la esquina superior izquierda del formularioOtroBotn.Location = New Point(0,0)
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
13
-
14
Tareas comunes: tamao y posicin (II)ta a o y pos c ( )
Propiedad Size.p Hace referencia a una estructura System.Drawing.Size.
9 Constructor: Size(ancho,alto).9Miembros Width y Height.9Miembros Width y Height.
Mtodo SetBounds()
OtroBotn.Size = New Size(100, 50)MiBotn.Size = OtroBotn.Size
Mtodo SetBounds(). Establece la posicin y el tamao de un componente.
control.SetBounds(x,y,ancho,alto)Iguala el tamao de OtroBotn a MiBotn y lo coloca en la posicin 0,0OtroBotn.SetBounds(0, 0, MiBotn.Size.Width, MiBotn.Size.Height)Iguala el tamao del formulario al de la pantallaMe.SetBounds(0, 0, Screen.PrimaryScreen.WorkingArea.Width, _
Screen PrimaryScreen WorkingArea Height)
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
14
Screen.PrimaryScreen.WorkingArea.Height)
-
15
Tareas comunes: tamao y posicin (III)ta a o y pos c ( )
Propiedad Bounds.p Hace referencia a una estructura de tipo System.Drawing.Rectangle.9 Propiedades X, Y, Width y Height.Propiedades X, Y, Width y Height.
Propiedad ClientSize.D l bj t i l t d l li t d l
OtroBotn.Bounds = MiBotn.Bounds 'Pone a OtroBotn encima de MiBotn
Devuelve un objeto Size con el tamao del rea cliente del control.
Propiedad ClientRectangle. Devuelve un objeto Rectangle con el rectngulo del rea
cliente del control.OtroBotn.Bounds=New Rectangle(0,0,Me.ClientSize.Width,Me.ClientSize.Height)
d li l l i l i
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
15
OtroBotn.Bounds = Me.ClientRectangle Hace lo mismo que lo anterior
-
16
Tareas comunes: tamao y posicin (IV)ta a o y pos c ( )Propiedad Descripcin Valores
Location Obtiene o establece el punto superior izquierdo del control Una estructura Point
Size Obtiene o establece el tamao del control Una estructura SizeSize Obtiene o establece el tamao del control Una estructura Size
Left, Top, Width, Height Coordenadas individuales del control (obsoletas) Un valor entero
Right Coordenada X del borde derecho Un valor entero
Bottom Coordenada Y del borde inferior Un valor entero
Bounds Establece u obtiene el rectngulo que identifica la posicin y el tamao del Una estructura RectangleBounds Establece u obtiene el rectngulo que identifica la posicin y el tamao del control
Una estructura Rectangle
ClientRectangle El rectngulo del rea cliente del control Una estructura Rectangle
ClientSize Dimensiones del rea cliente del control Una estructura Size
Anchor Distancia desde el borde del contenedor al control Un miembro de la enumeracin (ver tutorial del entorno) AnchorStyles
Dock Establece que bordes del control se encuentran acoplados a su contenedor Un miembro de la enumeracin DockStyles
Mtodo Descripcin Devuelve
BringToFront Trae el objeto a primer planoBringToFront Trae el objeto a primer plano
SendToBack Lleva el objeto al fondo
SetBounds(X,Y,ancho,alto)
Define el rectngulo que define la posicin y tamao del control
SetSize(ancho, alto) Define el tamao que define un control
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
16
-
17
Tareas comunes: manejo del teclado
Eventos KeyPress, KeyDown y KeyUp. Se ejecutan en el siguiente orden:
9 KeyDown9 KeyPress9 KeyUp.
Evento KeyPress.control_KeyPress(sender As Object, e As KeyPressEventArgs)
sender es una referencia al objeto que ha enviado el evento. e es una referencia a un objeto de la clase System.Windows.Forms.KeyPressEventArgs.99Miembros de KeyPressEventArgs:
o KeyChar, representa el carcter que se ha pulsado.o Handled, un valor lgico. Si se pone a True, indica que el evento se
ha procesado y no hay que hacer nada ms.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
17
p y y q
-
18
Tareas comunes: manejo del teclado (II)a ejo de tec ado ( )
Private Sub TextBox1 KeyPress(ByVal sender As Object, _ y ( y j , _ByVal e As System.Windows.Forms.KeyPressEventArgs) _Handles TextBox1.KeyPress
'Procesa slo las teclas numricas y las teclas de controlIf Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar)) Then
'El motor ignora la teclaEl motor ignora la teclae.Handled = True
End IfEnd Sub
Private Sub TextBox2 KeyPress(ByVal sender As Object,Private Sub TextBox2_KeyPress(ByVal sender As Object, _ByVal e As System.Windows.Forms.KeyPressEventArgs) _Handles TextBox2.KeyPress
'Convierte los caracteres alfabticos a maysculasIf Char.IsLetter(e.KeyChar) Then
'La propiedad SelectedText devuelve el texto seleccionadoLa propiedad SelectedText devuelve el texto seleccionado'Puede ser una cadena nula si no hay seleccionado ningn texto'En ese caso ser una cadena nula situada en la posicin del cursorTextBox2.SelectedText = Char.ToUpper(e.KeyChar)e.Handled = True
End If
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
18
End IfEnd Sub
-
19
Tareas comunes: manejo del teclado (III)a ejo de tec ado ( )
Eventos KeyUp y KeyDown.y p y y Permiten detectar las teclas especiales mediante el argumento e
de la clase KeyEventArgs.9Miembros de KeyEventArgs:Miembros de KeyEventArgs:
o Handled.o Alt, Control, Shift.o KeyCode. Contiene el cdigo de la tecla pulsada, un dato la
enumeracin Keys (Keys.A..Keys.Z, Keys.D0..Keys.D9, Keys.F1..Keys.F2, etc.).
Private Sub TextBox2_KeyDown(ByVal sender As Object, _ByVal e As System.Windows.Forms.KeyEventArgs) y y y g ) _Handles TextBox2.KeyDown
'Detecta si se ha pulsado la tecla Shift+F1If e.Shift And e.KeyCode = Keys.F1 Then
MsgBox("Se ha pulsado Shift+F1")End If
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
19
End IfEnd Sub
-
20
Tareas comunes: manejo del ratn
Pulsacin de teclas: Eventos Click, DoubleClick, MouseUp, MouseDown y
MouseWheel. Movimiento del ratn.
Eventos MouseMove, MouseEnter, MouseLeave y MouseHover.
Orden de procesamiento de eventos: Orden de procesamiento de eventos:1. MouseEnter.2. MouseMove.3 MouseHover/MouseDown-Click-3. MouseHover/MouseDown Click
DoubleClick/MouseWheel.4. MouseUp.5. MouseLeave.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
20
5. MouseLeave.
-
21
Tareas comunes: manejo del ratn (II)a ejo de at ( )
MouseMove, MouseDown, MouseWheel y MouseUp reciben un argumento de la clase MouseEventArgs. Miembros de MouseEventArgs.
Miembros de MouseEventArgs
Propiedad Descripcin Valores
Button Obtiene el botn del ratn que se presion Un miembro de la enumeracin MouseButtonsButton Obtiene el botn del ratn que se presion. Un miembro de la enumeracin MouseButtons (Left, Middle, None, Rigth, XButton1 o XButton2)
Clicks Obtiene el nmero de veces que el botn del ratn se presion y se solt.
Un entero con el nmero de veces que se puls y solt el botn
Delta Obtiene un recuento con signo que indica el nmero de Enterog qpasos de trinquete que ha girado la rueda del ratn. Un paso de trinquete es una muesca de la rueda del ratn.
X Obtiene la coordenada x del ratn. Entero
Y Obtiene la coordenada y del ratn. Entero
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
21
-
22
Tareas comunes: control del foco de entradae t ada
Propiedad Descripcin Valores
Enabled Obtiene o establece el estado de activado o desactivado del control Lgico
TabStop Determina si el control va a entrar en el orden de tabulacin Lgico
TabIndex Determina el orden en que el control va a entrar en el orden de tabulacin Entero
Visible Obtiene o establece si un control es visible Lgico
CausesValidation Determina si un control va a provocar un evento de validacin LgicoCausesValidation Determina si un control va a provocar un evento de validacin Lgico
CanFocus Determina si un control puede tomar el foco de entrada (si Visible y Enabled estn a True) Lgico
Focused Determina si un control tiene el foco Lgico
Mtodo Descripcin Valores devueltos
Focus() Da el foco a un control. Su uso es obligatorio en controles que no se pueden seleccionar (Panel, GroupBox, PictureBox, ProgressBar, Splitter, Label, LinkLabel cuando no hay ningn
Lgico (True si se ha podido seleccionar el control o false enProgressBar, Splitter, Label, LinkLabel cuando no hay ningn
enlace).control o false en caso contrario)
GetNextFocus(control, adelante) Obtiene el siguiente o anterior control en el orden de tabulacin (si adelante es True, obtiene el siguiente)
Control
Select() Establece el foco en un control. No se puede utilizar en Ninguno
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
22
controles que no se pueden seleccionar. En el resto es igual a Focus().
-
23
Tareas comunes: control del foco de entrada (II)( )
Cuando un control entra en foco se producen los siguientes eventos:1. Enter.2. GotFocus.3. Leave.4. Validating.5. Validated.6. LostFocus.Private Sub TextBox3_Validating(ByVal sender As Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _Handles TextBox3.Validating
'Slo permite dejar el control si se introduce un valor numrico positivof i ( 3 ) l ( 3 ) 0 hIf Not IsNumeric(TextBox3.Text) OrElse CInt(TextBox3.Text)
-
24
La clase Form
Representa una ventana o cuadro de dilogo de la aplicacin. D d l t d i t d l i t f tili t d d Desde el punto de vista de la interfaz, se utilizar cmo un contenedor de
controles. Desde el punto de vista de la aplicacin, ser un objeto heredado de la
clase Form y que constituye el punto de entrada de la aplicacin.N l t t d l d l i l di d l li i Normalmente contendr las declaraciones y el cdigo de la aplicacin.
En el archivo Formx.designer.vbPartial Class Form1
Inherits System.Windows.Forms.Form
En el archivo Formx vb
Inherits System.Windows.Forms.Form'Cdigo generado por Visual Studio con las caractersticas del formulario...
End Class
En el archivo Formx.vb Public Class Form1
'Cdigo de usuario para manejar el formulario...
End Class
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
24
-
25
La clase Form (II)
Ciclo de vida de un formulario. Eventos que intervienen.1. Evento Load().
z Se produce cuando el formulario se carga por primera vez y antes de que se muestre.
z Es el lugar adecuado para meter el cdigo necesario paraz Es el lugar adecuado para meter el cdigo necesario para inicializar variables, abrir bases de datos, dar contenido a los controles, etc.
2. Evento Shown()z Se produce la primera vez que se muestraz Se produce la primera vez que se muestra.
3. Evento Activated().z Se produce cada vez que el formulario entra en foco, ya sea por
una accin del usuario o por el cdigo del programa.E t t d l t li i d l t idz Este evento se puede usar para la actualizacin del contenido con los cambios que pudieran haberse producido cuando no estaba activado.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
25
-
26
La clase Form (III)
Ciclo de vida de un formulario (continuacin)4. Evento Deactivate().
z Se produce cuando el formulario pierde el foco.z Puede utilizarse para actualizar el contenido de otra ventana con los
d t d l f l i h did l fdatos del formulario que ha perdido el foco.5. Evento FormClosing().
z Se produce cuando se da la orden de cerrar el formulario, pero antes de que se cierrede que se cierre.
z Es posible cancelar la accin de cierre poniendo a True la propiedad Cancel del argumento FormClosingEventArgs del control.
6. Evento FormClosed().()z Se produce despus de haberse cerrado el formulario.z Se puede utilizar para liberar recursos utilizados por el formulario,
almacenar la informacin producida por l o actualizar otro formulario.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
26
-
27
Mover y cambiar el tamao del formularioo u a o
Propiedades Size, Location, Bounds. Propiedades DesktopLocation y DesktopBounds.
Establecen la posicin (un objeto Point) y el tamao (un objeto Size) a partir del rea del escritorio no ocupada por la barra de tareas.9 Realizan acciones distintas a Location y Bounds si la barra de tareas est no esta
l d l facoplada a la parte inferior.
Mtodos SetDesktopLocation y SetDesktopBounds. SetDesktopLocation(x,y) SetDesktopBounds(x,y,ancho,alto)p ,y, ,
'Establece la posicin y el tamao de la pantalla activa'Screen.PrimaryScreen hace referencia a la pantalla principal'La propiedad WorkingArea devuelve el tamao y posicin de una pantallaMe.DesktopBounds = Screen.PrimaryScreen.WorkingArea
'Establece el tamao del formulario a 1/4 del tamao del escritorio'y lo centra en el cuadrante inferior derecho del mismoMe.SetDesktopBounds(Screen.PrimaryScreen.WorkingArea.Width / 2, _
Screen.PrimaryScreen.WorkingArea.Height / 2, _Screen PrimaryScreen WorkingArea Width / 2
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
27
Screen.PrimaryScreen.WorkingArea.Width / 2, _Screen.PrimaryScreen.WorkingArea.Height / 2)
-
28
Mover y cambiar el tamao del formulario (II)o u a o ( )
Mtodos CenterToScreen() y CenterToParent(). Centran el formulario en la pantalla y en el formulario padre (en el caso de que
sea una aplicacin MDI). Propiedad TopMost.
Asignando un valor True, el formulario siempre aparece por encima del resto. Propiedad StartPosition.
Establece la posicin de inicio del formulario.
Mi b d St tP iti D i iMiembros de StartPosition Decripcin
CenterParent El formulario est centrado en los lmites de su formulario principal.
CenterScreen El formulario est centrado en la pantalla actual y tiene las dimensiones especificadas en el tamao del formulario.
M l L i i d l f l i i d i d l i d d L iManual La posicin del formulario viene determinado por la propiedad Location
WindowsDefaultBounds El formulario se encuentra colocado en la ubicacin predeterminada de Windows y tiene los lmites establecidos por Windows de forma predeterminada.
WindowsDefaultLocation El formulario se encuentra colocado en la ubicacin predeterminada de Windows y tiene las dimensiones especificadas en el tamao del formulario
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
28
tiene las dimensiones especificadas en el tamao del formulario
-
29
Modificar el aspecto del formulario
Propiedad BackgroundImage.E t bl l i d f d d l f l i Establece la imagen de fondo del formulario.
Propiedad Icon. Establece el icono de la barra de ttulos del formulario.
Propiedades ControlBox MaximizeBox MinimizeBox Propiedades ControlBox, MaximizeBox, MinimizeBox, HelpButton. Contienen un valor lgico que establece si el botn del men de control,
maximizar, minimizar o el botn de ayuda aparecen en el formulario. Propiedad O it Propiedad Opacity.
Establece mediante un nmero real el nivel de transparencia de un formulario.9 De forma predeterminada el nivel de transparencia es de 1,00.
P i d d Propiedad TransparencyKey. Establece el color que ser transparente en el formulario.
9 Me.TranparencyKey = Me.Backcolor Hace transparente el fondo del formulario.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
29
-
30
Modificar el aspecto del formulario (II)o u a o ( )
Propiedad FormBorderStyle. Permite tomar alguno de estos valores: Permite tomar alguno de estos valores:
Parmetro Descripcin
None Ninguno (ningn borde ni elemento relacionado con l). Se utiliza para los formularios de inicio (por ejemplo, pantallas de splash).
Fixed 3D Se utiliza cuando se desea un efecto de borde tridimensional. No se puede cambiar de tamao. Puede incluir en la barra de ttulo un botn de men de control y botones Maximizar y Minimizar.
Fixed Dialog Se utiliza para los cuadros de dilogo. Presenta un borde grueso. No se puede cambiar de tamao. Puede incluir en la barra de ttulo un cuadro de men de control, y botones Maximizar y Minimizar.
Fixed Single. No se puede cambiar de tamao. Presenta un borde de una sla lnea. Puede incluir cuadro de men de control y botones Maximizar y minimizar. Slo puede cambiar de tamao con los botones Maximizar y Minimizar.
Fixed Tool Window Se utiliza para las ventanas de herramientas. Muestra una ventana de tamao no ajustable con un botn Cerrar y texto de barra de ttulo con un tamao de fuente reducido. El formulario no aparece y pen la barra de herramientas de Windows.
Sizable Con frecuencia se utiliza como ventana principal. Se le puede cambiar el tamao. Puede incluir unmen de control y botones Maximizar y Minimizar. Puede cambiar de tamao mediante el cuadro de men de control, los botones Maximizar y Minimizar de la barra de ttulo, o mediante el ratn.
Si bl T lWi d V t d h i t d t i bl U t d h i t l b
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
30
SizableToolWindow Ventana de herramientas de tamao variable. Una ventana de herramientas no aparece en la barra de tareas ni en la ventana que aparece cuando el usuario presiona ALT+TAB.
-
31
Mostrar formularios
Formulario de inicio. Se selecciona en la pgina
Aplicacin del Diseador de proyectos.
Dependiendo del tipo de aplicacin se puede seleccionar:aplicacin se puede seleccionar:9 Para aplicaciones de consola.
o Sub Main de un mdulo.9 Para aplicaciones Windows.
o Cualquiera de los formularios deo Cualquiera de los formularios de la lista Formulario de inicio
9 Biblioteca de clases.o No existe un objeto inicial.
Se puede establecer en tiempo de ejecucin medianteejecucin mediante cdigo en el mtodo Main() mediante el mtodo Run del objeto Application.
Sub Main()Dim frm As New Form1Application.Run(frm)
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
31
j pp
-
32
Mostrar formularios (II)
Mostrar formularios secundarios no modales. Se debe crea una instancia del formulario y aplicar el mtodo Show() Se debe crea una instancia del formulario y aplicar el mtodo Show().
'El proyecto incluye la clase Form3Dim frm As New Form3frm.Show()
En el Visual Basic de .NET Framework 2.0, se puede acceder a instancias de los formularios a travs del objeto My.Forms.
'El proyecto incluye la clase Form3My.Forms.Form2.Show()
Mostrar formularios modales. Se crea una instancia del formulario y se usa el mtodo ShowDialog(). El propietario ser el formulario activo al hacer la llamada.
9 ShowDialog() puede pasar como argumento una referencia a otro formulario para cambiar elShowDialog() puede pasar como argumento una referencia a otro formulario para cambiar el formulario propietario.
ShowDialog() devuelve un elemento del enumerado DialogResult.9 La propiedad DialogResult del formulario permite especificar que valor del
enumerado devuelve (p.e. Me.DialogResult = DialogResult.Yes).o Al asignar esta propiedad, el formulario se cierra.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
32
o Al asignar esta propiedad, el formulario se cierra.
-
33
Mostrar formularios (III)
Los formularios modales y no modales tienen distinto comportamiento: En los no modales al abrir con el mtodo Show contina el evento que ha realizado la llamada En los no modales, al abrir con el mtodo Show, contina el evento que ha realizado la llamada. En los modales, al abrir con el mtodo ShowDialog, el evento que ha realizado la llamada se detiene
hasta que se cierra el formulario modal.
'En Form1Private Sub Button1 Click( )Private Sub Button1_Click()Dim frm As New Form2Dim r As DialogResult = frm.ShowDialog()Select Case rCase DialogResult.OK'Acciones cuando se pulsa AceptarAcciones cuando se pulsa Aceptar
Case DialogResult.Cancel'Acciones cuando se pulsa Cancelar
Case DialogResult.Retry'Acciones cuando se pulsa Reintentar
End SelectEnd SelectEnd Sub'En el botn Aceptar de Form2
Private Sub Button1_Click 'Esto tambin cierra el formulario
Me.DialogResult = DialogResult.OK
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
33
End Sub
-
34
Compartir informacin entre formularioso u a os
Con formularios modales. Se puede acceder a los controles de un formulario modal desde el
formulario que lo llama.
Dim frm As New Form2
frm.ShowDialog()'Accede al contenido de TextBox1 en Form2MessageBox.Show(frm.TextBox1.Text)
Se puede acceder a las variables pblicas del formulario modal desde el formulario que lo llama.'En Form2Public a As Integer 10Public a As Integer = 10'En Form1Dim frm As New Form2frm.ShowDialog()
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
34
'Accede al contenido de la variable a de form2MessageBox.Show("A = " & frm.a)
-
35
Compartir informacin entre formularios (II)o u a os ( )
Con formularios no modales o en las ventanas secundarias Se pueden utilizar variables globales en la ventana principal o en un
mdulo de cdigo.9 Cmo no tenemos una referencia a la instancia donde est declarada la
variable hay que hacer que la variable sea compartidavariable, hay que hacer que la variable sea compartida.
'En Form1Public Shared otraVariable As Integer = 100
Tambin se pueden poner las variables en un mdulo de cdigo.
'En Form2MessageBox.Show(Form1.otraVariable)
Tambin se pueden poner las variables en un mdulo de cdigo.'En Module1Public MsVariables as Integer = 200'En Form1 o en Form2
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
35
MessageBox.Show(MsVariables)
-
36
Compartir informacin entre formularios (III)o u a os ( )
Acceder a la informacin de un formulario por medio de My.Forms.i i i d d f l i l l My.Forms proporciona una instancia de cada formulario en el proyecto actual.
9 Para acceder a cada formulario, el nombre de la propiedad que hay que llamar es igual que el nombre de la clase que forma el formulario.
o My.Forms.Form1.Show()9 La primera vez que se accede a un formulario con My Forms se crea la instancia del9 La primera vez que se accede a un formulario con My.Forms, se crea la instancia del
mismo. Las veces siguientes, se acceder a la instancia creada anteriormente. Slo proporciona acceso a los formularios en aplicaciones Windows Forms, no en
aplicaciones de consola o en formularios contenidos en DLL. A partir de la instancia proporcionada es posible acceder a todos los miembros A partir de la instancia proporcionada es posible acceder a todos los miembros
del formulario. Para acceder a todos los formularios abiertos de una aplicacin en un momento
dado se puede utilizar la propiedad. My.Application.OpenForms, que devuelve una coleccin con todos los formularios de la aplicacin.p
'Escribe en una etiqueta, el ttulo de todos los formularios abiertosFor Each frm As Form In My.Application.OpenForms
Label1.Text = Label1.Text & " " & frm.Text
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
36
Label1.Text Label1.Text & & frm.TextNext
-
37
Compartir informacin entre formularios (IV)o u a os ( )
Ejemplo: intercambiar informacin entre dos formularios con My.Forms.
Public Class Form1'Cada vez que se pulsa el botn el contenido del textbox pasa a form2'Cada vez que se pulsa el botn, el contenido del textbox pasa a form2 Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _Handles Button1.Click
My.Forms.Form2.TextBox1.Text = TextBox1.TextMy.Forms.Form2.Show()y ()
End SubEnd Class
Public Class Form2'Al cerrar Form2, el contenido del TextBox para a Form1Private Sub Form2_FormClosing(ByVal sender As Object, _
ByVal e As _System.Windows.Forms.FormClosingEventArgs) _Handles Me.FormClosing
My.Forms.Form1.TextBox1.Text = TextBox1.TextEnd Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
37
End SubEnd Class
-
38
Clase Label
Representa un campo de texto esttico.Propiedad Text Propiedad Text.9 Obtiene o establece el texto de la etiqueta en modo de diseo o ejecucin.9 Propiedad TextAlign.
o Alineacin del texto. Puede contener alguno de los valores del enumerado ContentAlign(BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight TopCenter TopLeft TopRight)MiddleRight, TopCenter, TopLeft, TopRight).
Aspecto, tamao, posicin.9 Propiedades Location, Size, Backcolor, Forecolor, Font.9 Propiedad BorderStyle.
o Puede tomar alguno de los valores de la enumeracin BorderStyle: Fixed3D, FixedSingle o NoneFixedSingle o None.
9 Propiedad Autosize.o Un valor lgico True hace que el tamao de la etiqueta se adecue al tamao del texto.
True es el valor por omisin.9 Propiedad Autoelipsis.
Si t i li t i i l t t d l ti t ti d ll do Si esta a True, visualiza puntos suspensivos si el texto de la etiqueta se extiende ms all de su longitud.
9 Propiedad Image.o Permite establecer una imagen en la etiqueta. La propiedad ImageAlign permite establecer
la alineacin de dicha imagen.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
38
-
39
Clase LinkLabel
Hereda de Label. Permite establecer un enlace en la etiqueta. Propiedad LinkArea.
9 Establece el rea de la imagen.9 Se le debe asignar un objeto de la clase LinkArea.
o Constructor de LinkArea: LinkArea(inicio,longitud). Evento LinkClicked.
9 Se produce cuando se pulsa sobre el enlace9 Se produce cuando se pulsa sobre el enlace.
LinkLabel1.Text = "Programa realizado por Mi compaa. www.micompania.es"LinkLabel1.LinkArea = New LinkArea(35, 53)Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs)_Handles LinkLabel1.LinkClicked
'La orden Shell permite ejecutar un archivo del sistemaShell("explorer http://www.micompania.es")
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
39
End Sub
-
40
Clase TextBox
Representa un campo de texto editable por el usuario.p p p Propiedad Text.
9 Permite obtener o establecer el texto del control. Propiedad TextAlign Propiedad TextAlign.
9 Permite establecer la alineacin del texto. Su contenido es un miembro del enumerado HorizontalAligment (Right, Center, Left).)
Cuadros multilnea.9 La propiedad Multiline permite cuadros multilnea.9 La propiedad WordWrap permite el salto de lnea automtico.La propiedad WordWrap permite el salto de lnea automtico.9 La propiedad ScrollBars, aade barras de desplazamiento al
cuadro de texto multilinea.9 Todas las lneas se almacenan en el array de cadenas Lines.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
40
y
-
41
Clase TextBox (II)
Modificar el contenido. Cada vez que se modifica el texto del control se produce el evento
TextChanged(). La propiedad Modified se pone a True si el cuadro se ha modificado. Propiedad CharacterCasing permite convertir el texto en a Propiedad CharacterCasing, permite convertir el texto en a
maysculas (Upper) o minsculas (Lower). Propiedad PasswordChar.
9 Todo el texto escrito se visualiza como el carcter asignado a esa propiedad. Propiedad UseSystemPasswordChar.
9 Todo el texto escrito se visualiza como el carcter que el sistema utiliza como carcter de contrasea.
Mtodo AppendText(cadena). Mtodo AppendText(cadena).9 Aade la cadena al final del cuadro de texto.
Propiedad ReadOnly.9 Impide modificar el cuadro de texto.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
41
-
42
Clase TextBox (III)
Autocompletar el contenido de un TextBox.La propiedad A t C l t M d permite indicar si queremos que se La propiedad AutoCompleteMode permite indicar si queremos que se autocomplete el contenido de los escrito en un TextBox:9 None, no se autocompleta.9 Append, al teclear los primeros caracteres aaden los que faltan.9 Sugest, despliega una lista con las posibles opciones a completar.g9 Sugest Append, aade los que faltan y despliega la lista.
La propiedad AutoCompleteSource, indica el origen de los datos a autocompletar.9 FileSystem Especifica el sistema de archivos como origen. 9 HistoryList Incluye los URL en la lista de historial9 HistoryList Incluye los URL en la lista de historial. 9 RecentlyUsedList Incluye los URL de la lista de las direcciones usadas
recientemente. 9 AllUrl Especifica el equivalente de HistoryList y RecentlyUsedList como el
origen. 9 AllSystemSources Especifica el equivalente de FileSystem y AllUrl como el9 AllSystemSources Especifica el equivalente de FileSystem y AllUrl como el
origen. 9 FileSystemDirectories Especifica que slo los nombres de directorio y no los
nombres de archivo se finalizarn automticamente.9 CustomSource Especifica que se utilizarn las cadenas que formen la propiedad
AutoCompleteCustomSource
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
42
AutoCompleteCustomSource.
-
43
Clase TextBox (IV)
Control del punto de insercin y del texto seleccionado. La propiedad SelectionStart permite obtener o establecer el punto
de insercin.9 Un valor 0 indica que el punto de insercin est antes del primer carcter.
La propiedad SelectionLength permite obtener o establecer la La propiedad SelectionLength permite obtener o establecer la longitud del texto seleccionado.9 Un valor igual a 0 indica que no hay seleccionado ningn carcter.
La propiedad SelectedText obtiene o establece el texto seleccionado.9 Una cadena nula elimina indica que no hay texto seleccionado o elimina el
mismo. Los mtodos Cut(), Copy() o Paste(), permiten cortar, copiar o
pegar el texto. El mtodo SelectAll() selecciona todo el contenido del cuadro de
texto. El mtodo Select(inicio,longitud) permite seleccionar una
porcin de texto
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
43
porcin de texto.
-
44
Clase TextBox (V)
TextBox1.SelectionStart = 3
TextBox1.SelectionLength = 10
TextBox1.SelectedText = ""
TextBox1.SelectionLength = 5TextBox1.Copy()TextBox1.SelectionStart = TextBox1.TextLengthTextBox1.Paste()
TextBox1.SelectAll()
TextBox1.Select(3, 5)T tB 1 C t()
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
44
TextBox1.Cut()
-
45
Clase Button
Desciende de la clase System.Windows.Forms.ButtonBase, de la que tambin descienden la clase R di B tt y Ch kBtambin descienden la clase RadioButton y CheckBox.
La propiedad Text, establece la etiqueta del control y permite asignar una tecla de acceso.
Apariencia del botn. Apariencia del botn. La propiedad Image, permite establecer una imagen para el control.
9 La propiedad ImageAlign, permite establecer su posicin en el control y puede tomar alguno de los valores de ContentAlignment (vase pgina 12).
La propiedad BackgroundImage permite repetir una imagen a lo largo del rea p p g g p p g gque ocupa el control.
Botones por omisin. Las propiedades AcceptButton y CancelButton del formulario permiten
especificar que botn se ejecutar al pulsar ENTER o al pulsar ESC.especificar que botn se ejecutar al pulsar ENTER o al pulsar ESC. La propiedad DialogResult, permite especificar que valor devolver el botn
al ser pulsado en un cuadro de dilogo modal.9 Hace lo mismo que establecer la propiedad DialogResult del formulario.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
45
-
46
Clase PictureBox
Acta como contenedor de imgenes de mapas de bits. La imagen se guarda en un objeto de la clase Image accesible
mediante la propiedad Image de la clase. El mtodo FromFile(espArchivo) devuelve un objeto de la clase
Image a partir de un archivo .bmp, .jpg, .ico, .gif, .wmf o .pngImage a partir de un archivo .bmp, .jpg, .ico, .gif, .wmf o .pngcontenido en disco.
PictureBox1.Image = FromFile(C:\imgenes\MiImagen.jpg) Para eliminar dicho contenido hay que asignar a la propiedad Image de
PictureBox el literal NothingPictureBox el literal Nothing.PictureBox1.Image = Nothing
Tamao y posicin de la imagen en el control La propiedad SizeMode permite acomodar la imagen en el control. Puede
tomar alguno de los siguientes valores:tomar alguno de los siguientes valores:9 Autosize. El tamao del control se adecua al de la imagen.9 CenterImage. La imagen se centra en el control, recortndola si es necesario.9 Normal. La imagen se sita en la esquina superior izquierda del control,
recortndola si es necesario.9 h L i d t l t d l t l
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
46
9 StretchImage. La imagen se adapta al tamao del control.
-
47
Clase RadioButton
Representa un grupo de opciones excluyentes. Se pueden crear grupos independientes siempre que aparezcan en contenedores
distintos.9 Los controles contenedores son el objeto Form, el objeto Panel y el objeto
GroupBox.
Control GroupBox
La propiedad Checked devuelve un valor lgico dependiendo del estado del controldel control.
Eventos del control. Adems del evento Click presente en casi todos los controles, es posible
controlar el evento CheckedChanged que se produce cuanto la propiedad bi d d
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
47
Checked cambia de estado.
-
48
Clase RadioButton (II)
Aspecto del control. Propiedad Image. Las propiedades TextAlign, ImageAlign y CheckAlign pueden tomar
algn valor del enumerado ContentAlignment. Propiedad FlatStyle.
9 Puede tomar alguno de los valores del enumerado FlatStyle:o Standard. Aspecto tridimensional.o Flat. Aspecto plano.p po Popup. Aspecto plano hasta que el cursor pasa por encima.o System. Toma el aspecto predeterminado del sistema.
Propiedad Appareance.9 Normal Toma el aspecto normal9 Normal. Toma el aspecto normal.9 Button. Toma el aspecto de botn.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
48
-
49
Control RadioButton (III)
Manejo del control.j Cambiar el tratamiento de la persona (Don o Doa) segn est
marcado el RadioButton Hombre o el RadioButton Mujer.
Public tratamiento As String...Private Sub Sexo_CheckedChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _Handles radHombre.CheckedChanged, _
radMujer.CheckedChangedIf radHombre.Checked Then
Tratamiento = "Don"Tratamiento DonElse
Tratamiento = "Doa"End If
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
49
-
50
Clase CheckBox
Representa un grupo de opciones no excluyentes. El control puede devolver de forma predeterminada tres estados
distintos: Checked, Unchecked o Indeterminate.
La propiedad lgica ThreeState permite determinar si el control va a tener esos tres estados o nicamente Checked y Unchecked.
La propiedad Autocheck permite pasar automticamente de un estado a otro.9 Con las propiedades ThreeState y AutoCheck a True
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
50
Estado inicial Primer Click Segundo Click Tercer Click
-
51
Clase CheckBox (II)
El estado del control se puede obtener o establecer a travs de las i d dpropiedades:
Checked, devuelve un valor lgico segn est o no marcado el control.9 Devuelve True cuando el estado del control es Checked o Indeterminate.
CheckState, devuelve un valor del enumerado CheckState:9 CheckState.Checked, CheckState.Indeterminate y CheckState.Unchecked.
Eventos (se desencadenan en este orden): CheckedChanged, se desencadena cuando cambia el estado de la propiedad
Checked. CheckStateChanged, se desencadena cuando cambia el valor de la propiedad
CheckState. Click, se desencadena cuando el usuario pulsa sobre el control.
Se desencadenan los eventosCheckedChanged
y CheckStateChanged
Se desencadena el evento
CheckStateChanged
Se desencadenan los eventosCheckedChanged
y CheckStateChanged
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
51
-
52
Clase TrackBar
Proporciona una barra de seguimiento (control deslizante). Se utilizar para asignar de forma grfica valores numricos continuos.
9 Por ejemplo controles de volumen u otros valores analgicos. Propiedad Value.
Proporciona un valor entero representado por el cuadro de Proporciona un valor entero representado por el cuadro de desplazamiento de la barra.
Propiedades Minimum y Maximum. Valores mximo y mnimo permitidos en la barra.y p
Propiedad LargeChange. Representa el incremento o decremento que se produce en la propiedad
Value cuando utilizan las teclas AvPg o RePg. Propiedad SmallChange.
Representa el incremento o decremento que se produce en la propiedad Value cuando se utilizan las teclas del cursor.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
52
-
53
Clase TrackBar (II)
Propiedad Orientation. Permite definir la orientacin (Horizontal o Vertical) del
control. TickFrecuency.
Un entero que permite establecer la distancia entre las marcas del control.
TickStyle. Un miembro del enumerado TickStyle que especifica que
marcas aparecern en el control.9 BottomRight (valor predeterminado). Las marcas aparecen abajo
o a la derecha segn la orientacin del controlo a la derecha segn la orientacin del control.9 None. No aparecen las marcas.9 Both. Las marcas aparecen a ambos lados.9 TopLeft. Las marcas aparecen arriba o a la izquierda.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
53
9 TopLeft. Las marcas aparecen arriba o a la izquierda.
-
54
Clase TrackBar (III)
Eventos. Evento Scroll.
9 Se produce cuando se desplaza el cuadro de desplazamiento mediante el ratn o el teclado.
Evento ValueChanged.9 Se produce cuando cambia la propiedad Value, ya sea por cdigo o
por una accin del usuario.p
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
54
-
55
Clase TrackBar (IV)
Enlazar un control TrackBar a un cuadro de texto. La informacin grfica de los valores que proporciona el control se debe
acompaar de una referencia numrica.
Private Sub TrackBar1_Scroll(ByVal sender As System.Object, __ _ByVal e As System.EventArgs) _Handles TrackBar1.Scroll
TextBox1.Text = TrackBar1.ValueEnd Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
55
-
56
Clase TrackBar (V)
Enlazar un cuadro de texto a un control ScrollBar.Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _Handles TextBox1.TextChanged
'Slo se modifica el valor del trackbar si el cuadro de texto'tiene un valor numricoIf IsNumeric(TextBox1.Text) Then
If TextBox1.Text < TrackBar1.Minimum Then'Si el valor es menor que el mnimo, se iguala al mnimoTextBox1 Text = TrackBar1 MinimumTextBox1.Text = TrackBar1.Minimum
ElseIf TextBox1.Text > TrackBar1.Maximum Then'Si el valor es mayor que el mximo se iguala al mximoTextBox1.Text = TrackBar1.Maximum
End If'Una vez que se tiene un valor correcto, se cambia'la propiedad value del TrackbarTrackBar1.Value = TextBox1.Text
End IfEnd Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
56
End Sub
-
57
Clases HScrollBar y VScrollBar
Proporcionan barras de desplazamiento horizontal y ti lvertical.
Se pueden utilizar para proporcionar desplazamiento en controles que no las incluyan o para asignar de forma grfica valores numricos.valores numricos.
Existen dos controles: HScrollBar, barra de desplazamiento horizontal VScrollBar, barra de desplazamiento vertical VScrollBar, barra de desplazamiento vertical
Las propiedades y el modo de manejo es similar al control TrackBar.
No se recomienda su uso para no confundir el control No se recomienda su uso para no confundir el control con las barras de desplazamiento incluidas en algunos controles. Es preferible utilizar el control TrackBar.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
57
p
-
58
Clase NumericUpDown
Proporciona un mecanismo para introducir valores numricos. Est formado por un cuatro de texto y dos flechas Est formado por un cuatro de texto y dos flechas.
La propiedad Value establece o devuelve el valor del cuadro de texto asociado.p p Propiedad Maximum y Minimum. Propiedad Increment. Establece o devuelve el incremento o decremento al pulsar
cualquiera de las flechas. Propiedad ReadOnly. Un valor True impide al usuario modificar los valores del cuadro de
texto. Aspecto del control.
Propiedades TextAlign (se puede alinear a la izquierda derecha o centro) y UpDownAlign (se puede alinear a la izquierda o a la derecha).
Propiedad DecimalPlaces. Propiedad Hexadecimal Propiedad Hexadecimal.
Mtodos UpButton y DownButton. Realizan el mismo efecto que pulsar las teclas arriba o abajo.
El cambio de valor del control se intercepta mediante el evento ValueChanged.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
58
-
59
Clase DomainUpDown
Tiene una funcionalidad y un aspecto similar a la clase NumericUpDown. Permite establecer una cadena de texto a partir de una serie de elementos.
Los elementos del control se guardan en la propiedad Items. Se pueden insertar en tiempo de diseo en la ventana de propiedades. Se pueden insertar en tiempo de ejecucin mediante el mtodo Add de la coleccin Items.p p j Se pueden eliminar en tiempo de ejecucin mediante la propiedad Remove. La propiedad SelectedItem devuelve el valor del elemento seleccionado del control. La propiedad SelectedIndex devuelve o establece el ndice del elemento seleccionado del
control. Propiedad Wrap.
Un valor True, permite realizar un ciclo por dichos elementos (del ltimo de la lista pasar al primero).
El evento SelectedItemChanged se produce cuando cambia el valor de la propiedad El evento SelectedItemChanged se produce cuando cambia el valor de la propiedad SelectedItem. Si el valor se cambia mediante el cuadro de texto se produce el evento TextChanged.
9 Tambin cambia la propiedad SelectedItem (y se desencadena el evento SelectedItemChanged) a -1.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
59
-
60
La clase ListBox
Muestra una serie de elementos de los que el usuario qpuede seleccionar uno o ms.
Los elementos incluidos en el control se guardan en la propiedad Items.propiedad Items. Items es una coleccin del tipo ListBox.ObjectCollection que puede incluir cualquier tipo de objeto utilizado en .NET.j
Los elementos seleccionados se guardan en la propiedad SelectedItems, una coleccin del tipo ListBox.SelectedObjectCollection.ListBox.SelectedObjectCollection.
Los ndices de los elementos seleccionados se guardan en la propiedad SelectedIndices, una coleccin del tipo ListBox SelectedIndexCollection
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
60
tipo ListBox.SelectedIndexCollection.
-
61
Clase ListBox (II)
La coleccin Items. Representa a los objetos
incluidos en la lista. Agregar elementos a la
coleccin.9 Se pueden agregar en
tiempo de diseo mediante el editor de la propiedad.
o En tiempo de diseo slo es posible aadir cadenas.
9 En tiempo de ejecucin se pueden agregar mediante el mtodo Add.
ObjetoListBox.Itemsj
ListBox1.Items.Add("Elemento 01")ListBox1.Items.Add("Elemento 02")ListBox1.Items.Add("Elemento 03")ListBox1.Items.Add("Elemento 04")Li tB 1 It Add("El t 05")
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
61
.Add(objeto) ListBox1.Items.Add("Elemento 05")ListBox1.Items.Add("Elemento 06")
-
62
Clase ListBox (III)
La coleccin Items. Agregar elementos a la coleccin (continuacin).
9 Mediante el mtodo Add es posible aadir cualquier tipo de objetos.Structure personaDi id A I tDim id As IntegerDim nombre As StringDim apellidos As StringSub New(ByVal id As Integer, ByVal ape As String, ByVal nom As
String)Me.id = idMe.id idnombre = nomapellidos = ape
End Sub'El mtodo toString permite convertir un objeto en una cadenaOverrides Function toString() As String
Return apellidos & ", " & nombreEnd Function
End Structure...lstPersonas.Items.Add(New persona(123, "Perez", "Pepe"))lstPersonas Items Add(New persona(323 "Juarez" "Ana"))
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
62
lstPersonas.Items.Add(New persona(323, "Juarez", "Ana"))lstPersonas.Items.Add(New persona(333, "Bartolomez", "Bartolo"))
-
63
Clase ListBox (IV)
La coleccin Items.A l t l l i ( ti i ) Agregar elementos a la coleccin (continuacin).9 El mtodo Insert permite aadir un elemento en una
posicin especfica mayor o igual que 0 y menor o igual que el nmero de elementos.
ObjetoListBox.Items.Insert(ndice,objeto)Listbox1.Items.Insert(3,Nuevo elemento)
9 Se puede insertar cualquier objeto de cualquier tipo en la lista,lstPersonas.Items.Insert(0, New Persona(456,
"Estvez", "Esteban")) Eliminar elementos de la coleccin Eliminar elementos de la coleccin.
9 El mtodo Remove permite eliminar un elemento de la coleccin a partir de su valor.
ObjetoListBox.Items.Remove(objeto)ListBox1.Items.Remove(Elemento 01)
9 El t d it li i l t d l9 El mtodo RemoveAt permite eliminar un elemento de la coleccin a partir de su ndice.
ObjetoListBox.Items.Remove(ndice)ListBox1.Items.RemoveAt(1)
9 El mtodo Clear permite eliminar todos los elementos de la
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
63
pcoleccin.
-
64
Clase ListBox (V)
Eliminar objetos de la lista Se puede pasar como argumento una referencia a un objeto de la lista Se puede pasar como argumento una referencia a un objeto de la lista.
'p es una referencia a un elemento de la lista'no un dato de tipo persona cualquiera'No valdra si Dim p as persona = new Persona(323, "Juarez", "Ana")Dim p As Persona = lstPersonas.Items(1)
Si queremos buscar y borrar un elemento concreto habr que realizar una bsqueda.
p ( )lstPersonas.Items.Remove(p) 'Elimina el segundo elemento de la lista
Dim p As persona = New persona(323, "Juarez", "Ana")'Eli i l bj t (A J ) d l li t'Elimina el objeto p (Ana Juarez) de la lista 'a partir de la bsqueda de su identificador'Es necesario codificar la funcin Equal en la estructura PersonaFor Each obj As persona In lstPersonas.Items
If obj.Equals(p) ThenlstPersonas.Items.Remove(obj)Exit For
End IfNext...'En la estructura PersonaOverloads Function Equals(ByVal o As persona) As Boolean
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
64
Return o.id = idEnd Function
-
65
Clase ListBox (VI)
La coleccin Items. La propiedad Count devuelve el nmero de elementos de la
coleccin. Buscar elementos en la coleccin Buscar elementos en la coleccin.
9 La propiedad Contains devuelve un valor lgico True si el elemento que se pasa como argumento est incluido en la coleccin.o ObjetoListBox.Items.Contains(objeto)
9 La propiedad IndexOf devuelve el ndice del objeto que se pasa como argumento.o Devuelve -1 si el objeto no se encuentra.ObjetoListBox.Items.IndexOf(objeto)
En el cdigo de la pgina anterior se podra haber puestolstPersonas.Items.RemoveAt(lstPersonas.Items.IndexOf(obj))
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
65
( ( j))
-
66
Clase ListBox (VII)
Trabajar con elementos de la lista. La propiedad SelectedIndex devuelve el ndice del elemento
seleccionado de la lista.9 Devuelve -1 si no se ha seleccionado ninguno.
La propiedad SelectedItem devuelve el elemento seleccionado de la La propiedad SelectedItem devuelve el elemento seleccionado de la lista.9 Devuelve el literal Nothing si no se ha seleccionado ninguno.
La propiedad Text devuelve el contenido del elemento seleccionado tid dconvertido a cadena.
Eventos. Eventos Click y DoubleClick. Evento SelectedItemChanged Evento SelectedItemChanged.
9 Se produce cuando cambia el valor de la propiedad SelectedItem. Evento SelectedIndexChanged.
9 Se produce cuando cambia el valor de la propiedad SelectedIndex.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
66
-
67
Clase ListBox (VIII)
Al seleccionar un elemento, aparece su contenido y su posicin
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, _ByVal e As System.EventArgs) _
iHandles ListBox1.SelectedIndexChangedTextBox1.Text = (ListBox1.SelectedItem)TextBox2.Text = (ListBox1.SelectedIndex)
End Sub
Private Sub lstPersonas SelectedIndexChanged(ByVal sender As System Object
Al seleccionar una persona, aparece su identificador
Private Sub lstPersonas_SelectedIndexChanged(ByVal sender As System.Object, _ByVal e As System.EventArgs) _
Handles lstPersonas.SelectedIndexChangedDim p As persona = lstPersonas.SelectedItemTextBox3.Text = p.id
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
67
End Sub
-
68
Clase ListBox (IX)
Seleccin mltiple. La propiedad SelectionMode permite seleccionar varios elementos al
mismo tiempo. Puede tomar alguno de los siguientes valores:9 None. No se puede seleccionar ningn elemento.9 One. Slo es posible seleccionar un valor (valor predeterminado).9 MultiSimple. Permite seleccionar varios elementos.
o La seleccin se realizar marcando cada elemento con el ratn o la barra espaciadora.9 MultiExtended. Permite seleccionar varios elemento.
o La seleccin se puede realizar marcando cada elemento y utilizando las teclas CTRL, SHIFT l t l d lSHIFT o las teclas del cursor.
La coleccin SelectedItems guarda los objetos seleccionados. La coleccin SelectedIndices guarda los ndices de los elementos
seleccionados. El mtodo GetSelected(indice) permite saber si un elemento ha sido
seleccionado. El mtodo SetSelected(ndice,valor) permite modificar el estado de
un elemento determinado.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
68
-
69
La clase ListBox (X)
Coleccin Items
ndice Objeto Estado de la seleccin0 Elemento 02 Seleccionado
1 Nuevo elemento No seleccionado
2 Elemento 04 Seleccionado
3 El t 05 S l i d3 Elemento 05 Seleccionado
4 Elemento 06 No seleccionado
Coleccin SelectedItems
ndice Objetoj
0 Elemento 02
1 Elemento 04
2 Elemento 05
Coleccin SelectedIndices
ndice Objeto
0 0
1 2
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
69
1 2
2 3
-
70
La clase ListBox (XI)
Ejemplo: copiar los elementos seleccionados de un ListBox a otro l l l b C ial pulsar el botn Copiar:
Private Sub Button1_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) _H dl B tt 1 Cli kHandles Button1.Click
For Each elem As Object In ListBox1.SelectedItemsListBox2.Items.Add(elem)
NextEnd Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
70
-
71
Clase ListBox (XII)
Otras propiedades.p p Propiedad Sorted. Un valor True permite ordenar los
elementos.9 Cuando la propiedad est a True, el mtodo Add e Insert
d l l t d daaden los elementos ordenados. Barras de desplazamiento.
9 La propiedad ScrollAlwaysVisible determina si se ver siembre la barra de desplazamientosiembre la barra de desplazamiento.
9 La propiedad HorizontalScrollbar permite visualizar una barra de desplazamiento horizontal.
Propiedad IntegralHeight.9 Indica si la altura de la lista slo puede visualizar elementos
completos.o Un valor a True (predeterminado) impide que se visualicen elementos
parcialmente.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
71
parcialmente.
-
72
Clase CheckedListBox
Hereda de ListBox y utiliza sus mismos miembros. Permite visualizar un cuadro de lista con casillas de
verificacin a la izquierda de sus elementos. No permite la seleccin de varios objetos, aunque si
permite marcar las casillas de varios de ellos. Las colecciones SelectedItems y
SelectedIndices se sustituyen por CheckedItems y CheckedIndices.
El evento ItemCheck se produce cuando cambia el El evento ItemCheck se produce cuando cambia el estado de alguno de sus elementos. Utiliza un argumento del tipo
System.Windows.Forms.ItemCheckEventArgscon los siguientes miembros:con los siguientes miembros:9 Index. ndice del elemento que va a cambiar.9 CurrentValue. Estado actual del elemento (Checked,
Unchecked, Indeterminate).9 NewValue. Nuevo estado del elemento.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
72
-
73
Clase CheckedListBox (II)
Mtodo GetItemChecked(ndice). Devuelve True si el elemento est activado (estado Checked o Indeterminate) o False en caso contrario Devuelve True si el elemento est activado (estado Checked o Indeterminate) o False en caso contrario.
Mtodo SetItemChecked(ndice,estado). Permite establecer el elemento a los estados Checked o Unchecked.
Mtodo GetItemCheckState(ndice). Permite obtener el estado del elemento.
9 Devuelve CheckedState Checked CheckedState Unchecked o CheckedState Indeterminate9 Devuelve CheckedState.Checked, CheckedState.Unchecked o CheckedState.Indeterminate. Mtodo SetItemCheckState(ndice, estado).
Permite establecer el estado del elemento a CheckedState.Checked, CheckedState.Uncheckedo CheckedState.Indeterminate.
Debug.WriteLine(CheckedListBox1.GetItemChecked(0)) 'Escribe TrueDebug.WriteLine(CheckedListBox1.GetItemChecked(2)) 'Escribe False
CheckedListBox1.SetItemCheckState(1, CheckState.Indeterminate)Debug.WriteLine(CheckedListBox1.GetItemCheckState(0))'Escribe CheckedDeb g W iteLine(CheckedListBo 1 GetItemCheckState(1))'Esc ibe Indete minate
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
73
Debug.WriteLine(CheckedListBox1.GetItemCheckState(1))'Escribe IndeterminateDebug.WriteLine(CheckedListBox1.GetItemCheckState(2))'Escribe Unchecked
-
74
Clase ComboBox
Combina un cuadro de lista con un cuadro de texto DropDownStylecuadro de texto. Presenta la mayora de las propiedades,
mtodos y eventos de ambos controles.9 No permite multiseleccin.9 No captura el evento DoubleClick.9 La p opiedad S l t dI d tambin
DropDownStyleDropDown
9 La propiedad SelectedIndex tambin vale -1 si el usuario est editando el texto.
Propiedad DropDownStyle. DropDown. Un cuadro de lista
desplegable en el que el usuario puede
DropDownStyleDropDownList
desplegable en el que el usuario puede editar el texto.
DropDownList. Un cuadro de lista desplegable en el que el usuario no puede editar texto. 9 S d d l l t9 Se puede acceder a los elementos a
partir de la inicial. Simple. Una lista no desplegable en la
que slo se ve el elemento seleccionado o el que edita el usuario.
DropDownStyleList
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
74
-
75
Clase ComboBox (II)
Autocompletar el contenido de un ComboBox. La propiedad AutoCompleteMode permite indicar si queremos que se autocomplete
el contenido de los escrito en un ComboBox:9 None, no se autocompleta.9 Append, al teclear los primeros caracteres aaden los que faltan.9 Sugest, despliega una lista con las posibles opciones a completar.9 SugestAppend, aade los caracteres que faltan y despliega la lista.
La propiedad AutoCompleteSource, indica el origen de los datos a autocompletar.9 FileSystem Especifica el sistema de archivos como origen. 9 HistoryList Incluye los URL en la lista de historial. 9 RecentlyUsedList Incluye los URL de la lista de las direcciones usadas recientemente. 9 AllUrl Especifica el equivalente de HistoryList y RecentlyUsedList como el origen. 9 AllSystemSources Especifica el equivalente de FileSystem y AllUrl como el origen. 9 FileSystemDirectories Especifica que slo los nombres de directorio y no los nombres
de archivo se finalizarn automticamente.9 ListItems. Especifica que los elementos de la lista son el origen.9 CustomSource Especifica que se utilizarn las cadenas que formen la propiedad
AutoCompleteCustomSource
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
75
AutoCompleteCustomSource.
-
76
Clase ComboBox (III)
AutocompleteSource
FileSystem HistoryList, AllUrly RecentlyUsedList
FileSystemDirectories ListItems
Con AutoCompleteSource a CustomSource es necesario rellenar los elementos de
CustomSource
Con AutoCompleteSource a CustomSource es necesario rellenar los elementos de la coleccin personalizada en la propiedad AutoCompleteCustomSource
AutocompleteMode AutocompleteMode.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
76
Sugest Append SugestAppend
-
77
Mens
Los mens se construyen a partir de la clase M St iMenuStrip. MenuStrip representa un contenedor de la estructura
de mens de un formulario. Crear un men.
Al arrastrar un men en el formulario, aparecer en la bandeja de componentes y el rea donde aparecer el men acoplada en la parte superior del formulario.
Elementos del men. Son objetos de la clase ToolStripMenuItem. Al seleccionar la barra de mens o el control
MenuStrip en la bandeja de componentes, el entorno permitir escribir el ttulo del men.p
A medida que se dan nombres a los elementos ToolStripMenuItem del men, aparecen posiciones para un nuevo elemento de men del mismo nivel o un men desplegable
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
77
-
78
Mens (II)
Ttulos de los mens. El carcter ampersand (&) hace que el carcter siguiente se convierta
en la tecla de acceso rpido.9 Las recomendaciones de diseo de la interfaz indican que todos los
elementos de un men deben tener tecla de acceso rpido.p Nombres de los objetos MenuStrip y ToolStripMenuItem.
Puesto que un formulario slo tendr normalmente un elemento MenuStrip la mayora de las veces no ser necesario dar un nombre distintodistinto.
En los elementos ToolStripMenuItem Visual Studio pone por omisin un nombre formado por el ttulo y el sufijo ToolStripMenuItem (por ejemplo, ArchivoToolStripMenuItem).9 Para los submens, se recomienda utilizar para el nombre, el ttulo del men
de jerarqua superior y el nombre del actual.o Por ejemplo una opcin Nuevo dentro del men Archivo podra tener el nombre ArchivoNuevoToolStripMenuItem.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
78
-
79
Mens (III)
Tipos de elementos de men. Por omisin el aspecto del elemento de men es una etiqueta con texto
esttico. Es posible cambiar ese aspecto para mostrar un ComboBox o un
TextBoxTextBox.9 Al pulsar con el botn secundario en un elemento de men, seleccionar la
opcin Convertir en.o MenuItem. El aspecto por omisin.o ComboBox. Aparece una lista desplegable. La propiedad Items del elemento deo ComboBox. Aparece una lista desplegable. La propiedad Items del elemento de
men permite aadir elementos. Se pueden aadir elementos al ComboBox de forma dinmica con el
mtodo Add de la propiedad Item del objeto ToolStripMenuItem. Se puede acceder al texto seleccionado por la propiedad Text del objeto.
A d d t t dit blo TextBox. Aparece como un cuadro de texto editable. Se puede acceder al texto mediante la propiedad Text del objeto
ToolStripMenuItem.o Los elementos de tipo ComboBox y TextBox no pueden tener submens.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
79
-
80
Mens (IV)
Aspecto del men.P d t d l t d l t t l d l Para agregar un separador entre dos elementos de men, en el men contextual del elemento, seleccionar la opcin Insertar y en el submen Separator.
Marcas de verificacin.9 La propiedad Checked permite aadir una marca de verificacin al men.9 En tiempo de ejecucin mediante cdigo es posible modificar la marca mediante la propiedad9 En tiempo de ejecucin, mediante cdigo, es posible modificar la marca mediante la propiedad
CheckState.o Puede tomar los valores Checked, Unchecked o Indeterminate.
9 Las propiedades Checked y CheckState tambin permiten obtener el estado de verificacin.
9 La propiedad CheckOnClick permiten modificar el estado de la verificacin al hacer clic9 La propiedad CheckOnClick, permiten modificar el estado de la verificacin al hacer clic. Imgenes.
9 Si se trata de un elemento de men de tipo MenuItem es posible aadir una imagen al margen con la propiedad Image.
9 Si la casilla de verificacin est activada, aparecer un recuadro rodeando la imagen. Habilitar y deshabilitar elementos de un men.
9 La propiedad Enabled, permite deshabilitar las opciones no disponibles en un momento dado.
o No debera ser posible acceder a aquellas opciones no disponibles: la interfaz debe mostrar pistas visuales.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
80
o Tambin es posible que no se muestren las opciones mediante la propiedad Visible.
-
81
Mens (V)
Teclas de mtodo abreviado. La propiedad ShortcutKeys permite asociar una tecla de mtodo abreviado al elemento de La propiedad ShortcutKeys permite asociar una tecla de mtodo abreviado al elemento de
men. 9 Slo deben tener teclas de mtodo abreviado las opciones finales de men.9 Si la propiedad ShowShortcutKeys est a True, aparecer la combinacin de teclas a la derecha.
Aadir opciones estndar de men. En el glifo ( ) de etiqueta inteligente del control MenuStrip y seleccionar Insertar elementos En el glifo ( ) de etiqueta inteligente del control MenuStrip y seleccionar Insertar elementos
estndar. Se aaden los elementos estndar de un men Windows.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
81
-
82
Mens (VI)
Controlar los eventos. Para asociar una accin a cualquier elemento de un men se
utilizar el evento Click.Private Sub ArchivoNuevoToolStripMenuItem_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _Handles NuevoToolStripMenuItem.Click
'Introducir el cdigo correspondiente a la opcin Nuevo del men ArchivoEnd Sub
Si se utilizan elementos de men con casillas de verificacin, los eventos CheckedChanged y CheckStateChanged permite
ifi i h difi d t dverificar si se ha modificado su estado.9 Funcionan de la misma forma que sus equivalentes de la clase CheckBox.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
82
-
83
Mens (VII)
Mens emergentes (mens contextuales o Popup).g ( p p) Se activan al hacer clic con el botn secundario en un control. El contenedor ser en este caso un objeto de la clase ContextMenuStripContextMenuStrip.9 Tambin hay que arrastrarlo a la bandeja de componentes.9 Aunque en un formulario normalmente slo hay un men principal
(objeto de la clase MenuStrip), puede haber tantos mens (obje o de a c ase e uSt p), puede abe a os e semergentes cmo se desee.
9 El objeto ContextMenuStrip contendr los elementos de men (ToolStripMenuItem).
9 Para asociar el men emergente a un control o formulario, ser necesario indicarlo en la propiedad ContextMenuStrip del control o formulario.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
83
-
84
Mens (VIII)
El evento Opening se produce antes de que se abra el men contextual. Se puede utilizar para aadir distintas opciones a un men contextual dependiendo
del control que se ha abierto.9 La propiedad SourceControl de la clase ContextMenuStrip, permite guardar una
referencia al objeto sobre el que se abri el men emergente. En el ejemplo el mismo objeto ContextMenuStrip muestra tres mens En el ejemplo, el mismo objeto ContextMenuStrip muestra tres mens
emergentes distintos, aunque con opciones compartidas.
El men emergente del control TextBox1
muestra los elementos
El men emergente del control TextBox2
muestra los elementos
El men emergente del formulario muestra los elementos Opcin 1,
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
84
Opcin 1 y Opcin 2 Opcin 1 y Opcin 3 Opcin 3 y Opcin 4
-
85
Mens (IX)
'Se supone que TextBox1, Textbox2 y Form1 tienen'la propiedad ContextMenuStrip a ContextMenuStrip1.'Tambin existen los elementos de men Opcin1 Opcin2 Opcin3 y Opcin4Tambin existen los elementos de men Opcin1, Opcin2, Opcin3 y Opcin4Private Sub ContextMenuStrip1_Opening(ByVal sender As System.Object, _
ByVal e As System.ComponentModel.CancelEventArgs) _Handles ContextMenuStrip1.Opening
If ContextMenuStrip1.SourceControl Is TextBox1 Then'Limpia el contenido anterior del menContextMenuStrip1.Items.Clear()ContextMenuStrip1.Items.Add(Opcin1ToolStripMenuItem)ContextMenuStrip1.Items.Add(Opcin2ToolStripMenuItem)
ElseIf ContextMenuStrip1.SourceControl Is TextBox2 ThenElseIf ContextMenuStrip1.SourceControl Is TextBox2 ThenContextMenuStrip1.Items.Clear()ContextMenuStrip1.Items.Add(Opcin1ToolStripMenuItem)ContextMenuStrip1.Items.Add(Opcin3ToolStripMenuItem)
ElseIf ContextMenuStrip1.SourceControl Is Me ThenC S i 1 Cl ()ContextMenuStrip1.Items.Clear()ContextMenuStrip1.Items.Add(Opcin1ToolStripMenuItem)ContextMenuStrip1.Items.Add(Opcin3ToolStripMenuItem)ContextMenuStrip1.Items.Add(Opcin4ToolStripMenuItem)
End If
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
85
End Sub
-
86
Formularios MDI
Aplicaciones SDI (Single Document Interface). La aplicacin slo permite tener abierta una nica ventana al mismo tiempo (por ejemplo la La aplicacin slo permite tener abierta una nica ventana al mismo tiempo (por ejemplo la
aplicacin WordPad). Aplicaciones MDI (Multiple Document Interface).
Existe una ventana MDI primaria (padre) que acta como contenedor de ventanas MDI secundarias (hijas).9 Es til cuando una aplicacin requiere de varias ventanas de caractersticas generales o para navegar9 Es til cuando una aplicacin requiere de varias ventanas de caractersticas generales o para navegar
entre las distintas ventanas de una aplicacin. En algunas aplicaciones actuales (cmo Office 2007) se sigue un modelo similar al MDI:
9 La aplicacin mantiene varias ventanas de documento abiertas, aunque no existe una ventana primaria contenedora.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
86
-
87
Formularios MDI (II)
Formulario MDI primario. Un objeto de la clase Form con la propiedad IsMdiContainer a
True. Formulario MDI secundario.
Un objeto de la clase Form cuya propiedad MdiParent apunta al formulario MDI primario.
Abrir una ventana MDI secundaria.Private Sub AbrirFormularioHijo()Dim frm As New FormularioHijo La clase FormularioHijo ya est creadafrm.MdiParent = Me MdiParent apunta al formulario actual Static Dim numHijos As Integer Esta variable sirve para el ttulo
Hij + 1 d l f l i hij S i t 1numHijos += 1 del formulario hijo.Se incrementa en 1frm.Text = "Ventana " & numHijos Nuevo ttulo de la ventanafrm.Show() Por ltimo se muestra el formulario
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
87
-
88
Formularios MDI (III)
Acceso a los formularios hijo. Los formularios primarios guardan en la propiedad MdiChildren la coleccin de formularios
secundarios.
'Da color rojo a todos los formularios secundarios desde un formulario hijoFor Each frm As Form In My.Forms.frmAplicacinMDI.MdiChildren
frm.BackColor = Color.RedN t
La propiedad ActiveMdiChild de la clase Form devuelve una referencia al formulario hijo activo o Nothing si no existe ningn formulario hijo activo.
El mtodo ActivateMdiChild(referenickFormularioHijo) activa una ventana
Next
secundaria concreta. El evento MdiChildActivate se desencadena cuando se abre un formulario secundario.
Cambia el ttulo del formulario primario cada vez que cambia el secundario Private Sub Form1_MdiChildActivate(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.MdiChildActivateIf Me.ActiveMdiChild Is Nothing Then
Me.Text = "Aplicacin MDI"Else
Me Text = "Aplicacin MDI - " & Me ActiveMdiChild Text
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
88
Me.Text = Aplicacin MDI - & Me.ActiveMdiChild.TextEnd If
End Sub
-
89
Formularios MDI (IV)
El men Ventana.E i l li i MDI t i d En ocasiones las aplicaciones MDI presentan una opcin de men para administrar los formularios hijo.
Para que en ese men aparezca una lista con todas las ventanas secundarias, es necesario indicar al objeto MenuStrip de la ventana padre en que elemento aparecer la lista de ventanas mediante lapadre en que elemento aparecer la lista de ventanas mediante la propiedad MdiWindowsListItem.9 Normalmente se tratar de un men de primer nivel (p.e. el men Ventana).
Para organizar las ventanas secundarias se utiliza el mtodo LayoutMdi de la clase FormLayoutMdi de la clase Form.9 Organizacin en cascada.
Me.LayoutMdi(MdiLayout.Cascade)9 Organizacin en mosaico horizontal.
Me LayoutMdi(MdiLayout TileHorizontal)Me.LayoutMdi(MdiLayout.TileHorizontal)9 Organizacin en mosaico vertical.
Me.LayoutMdi(MdiLayout.TileVertical)9 Organiza los iconos de las ventanas en el caso de que estn minimizadas.
Me.LayoutMdi(MdiLayout.ArrangeIcons)
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
89
-
90
Formularios MDI (V)
Combinacin de mens. Los mens del formulario secundario activo se combinarn con el del
formulario contenedor.9 La propiedad AllowMerge de la clase Form posibilita o impide la
combinacin de mens.9 La propiedad MergeAction especifica el tipo de combinacin que se
utilizar.o Su valor es un miembro del enumerado MenuAction:
Append. Los elemento del formulario secundario se aaden al final de los del formulario contenedor.
Insert. Inserta el elemento en el formulario contendor en la posicin indicada por la propiedad MergeIndex.
Replace. Reemplaza el elemento coincidente (el que tenga el mismo texto en la etiqueta).en la etiqueta).
Remove. Elimina los elementos que tengan el mismo nombre. MatchOnly. Realiza alguna accin si los elementos coinciden. La accin a
realizar depender de los elementos de los submens o del valor MergeAction del otro elemento coincidente.
Universidad Pontificia de Salamanca (Campus Madrid)Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
90
-
91
Formularios MDI (VI)
Men del contendor
Archivo
Men ventana secundaria
Archivo
Men resultante
ArchivoArchivo(MergeAction=Append; MergeIndex = -1)
Nuevo(MergeAction=Replace; MergeIndex = -1)
Abrir...(MergeAction=Append; MergeIndex = -1)
G d
Archivo(MergeAction=MatchOnly; MergeIndex = -1)
Nuevo(MergeAction=MatchOnly; MergeIndex = -1)
Abrir...(MergeAction=Replace; MergeIndex = -1)
ArchivoCombinacin de ambos
Nuevo
Abrir
GuardarGuardar...(MergeAction=Append; MergeIndex = -1)
Salir(MergeAction=Append; MergeIndex = -1)
Ventana(MergeAction=Appen