Professional Documents
Culture Documents
Programacin en Windows
Programacin g convencional (lineal) ( )
Acciones previsibles e independientes del entorno donde se ejecutan. 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.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
Eventos.
9 Accin que se ejecuta sobre el sistema. 9 El sistema operativo rastrea continuamente las ventanas en busca de sucesos.
Mensajes.
9 Cuando se produce un evento se enva un mensaje al sistema operativo. operativo 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
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
9 El nombre corresponde con el nombre del control. 9 La clusula Handles indica que mtodos de eventos estn asociados al procedimiento procedimiento.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
9 Archivo FormX.Designer.vb.
o o o o Uno por formulario. Dentro del directorio de proyecto. Implementacin parcial de la clase Form. Incluye y el cdigo g necesario para p crear y destruir los controles que q se incluyan y en 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
Propiedad TextAlign.
E Establece t bl u obtiene bti el l texto t t asociado i d al l control. t l Presente en todos los controles que tienen texto esttico o editable. En texto esttico, el carcter & se utiliza para determinar la tecla de acceso.
Alineacin del texto Presente en los controles Label, TextBox, Button, CheckBox, RadioButton, NumericUpDown y DomainUpDown. Para los controles Label, Button, CheckBox y RadioButton puede tomar alguno de los valores de la enumeracin ContentAligment. Para el resto puede tomar alguno de los valores de la enumeracin HorizontalAligment.
9 Center, Left, Right. 9 BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft, MiddleRight g , TopCenter p , TopLeft p , TopRight p g .
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
10
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
11
Hace referencia a un objeto System.Drawing.Font S stem Dra ing 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 Font Bold = True no es vlido 'MiBotn MiBotn.Font = New Font(MiBotn.Font, FontStyle.Bold)
Las fuentes de los componentes de un objeto contenedor, toman las caractersticas de los objetos contenidos.
Propiedades del objeto Font Propiedad Bold Italic Name Size Strikeout Underline Unit Descripcin Obtiene un valor que indica si el objeto Font est en negrita Obtiene un valor que indica si el objeto Font est en cursiva Obtiene una representacin del tipo de letra del objeto Font Obtiene el tamao del objeto Font Otiene un valor que indica si el objeto Font est tachado Otiene un valor que indica si el objeto Font est subrayado Obtiene la unidad de medida del objeto Font Valores True o False True o False Cadena Real de simple precisin True o False True o False Un miembro de GraphicsUnit (Inch, Millimeter, Point,)
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
12
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
13
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,0 OtroBotn.SetBounds(0, 0, MiBotn.Size.Width, MiBotn.Size.Height) Iguala el tamao del formulario al de la pantalla Me.SetBounds(0, 0, Screen.PrimaryScreen.WorkingArea.Width, _ Screen PrimaryScreen WorkingArea Height) Screen.PrimaryScreen.WorkingArea.Height)
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
14
Propiedad ClientSize.
D Devuelve l un objeto bj t Size i con el lt tamao d del l rea cliente li t del d l 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) OtroBotn.Bounds d = Me.ClientRectangle li l Hace l lo mismo i que l lo anterior i
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
15
Una estructura Point Una estructura Size Un valor entero Un valor entero Un valor entero Una estructura Rectangle Una estructura Rectangle Una estructura Size Un miembro de la enumeracin AnchorStyles Un miembro de la enumeracin DockStyles Devuelve
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
16
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.
9 Miembros 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 procesado y no hay y que q hacer nada ms. ha p
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
17
18
Miembros de MouseEventArgs Propiedad Button Clicks Delta Descripcin Obtiene el botn del ratn que se presion presion. Obtiene el nmero de veces que el botn del ratn se presion y se solt. g q que indica el nmero de Obtiene un recuento con signo pasos de trinquete que ha girado la rueda del ratn. Un paso de trinquete es una muesca de la rueda del ratn. Obtiene la coordenada x del ratn. Obtiene la coordenada y del ratn. Valores Un miembro de la enumeracin MouseButtons (Left, Middle, None, Rigth, XButton1 o XButton2) Un entero con el nmero de veces que se puls y solt el botn Entero
X Y
Entero Entero
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
21
Mtodo Focus()
Descripcin 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 enlace). Obtiene el siguiente o anterior control en el orden de tabulacin (si adelante es True, obtiene el siguiente) Establece el foco en un control. No se puede utilizar en controles que no se pueden seleccionar. En el resto es igual a Focus().
Valores devueltos Lgico (True si se ha podido seleccionar el control o false en caso contrario) Control Ninguno
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
22
sender As Object, _ ByVal e As System.ComponentModel.CancelEventArgs) _ Handles TextBox3.Validating 'Slo permite dejar el control si se introduce un valor numrico positivo If f Not IsNumeric(TextBox3.Text) i ( 3 ) OrElse l CInt(TextBox3.Text) ( 3 ) <= 0 Then h MessageBox.Show("Se debe introducir un valor numrico mayor a 0") TextBox3.Text = String.Empty e.Cancel = True End If End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
23
La clase Form
Representa una ventana o cuadro de dilogo de la aplicacin. Desde D d el l punto t de d vista i t de d la l interfaz, i t f se utilizar tili cmo un contenedor t d de d 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. En el archivo Formx.designer.vb
Normalmente N l t contendr t dl las d declaraciones l i y el l cdigo di de d la l aplicacin. li i
Partial Class Form1 Inherits System.Windows.Forms.Form 'Cdigo generado por Visual Studio con las caractersticas del formulario ... End Class
En el archivo Formx.vb 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
2. Evento Shown()
3. Evento Activated().
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
25
5. Evento FormClosing().
z Se produce cuando se da la orden de cerrar el formulario, pero antes de que se cierre 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
'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 pantalla Me.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 mismo Me.SetDesktopBounds(Screen.PrimaryScreen.WorkingArea.Width / 2, _ Screen.PrimaryScreen.WorkingArea.Height / 2, _ Screen PrimaryScreen WorkingArea Width / 2 Screen.PrimaryScreen.WorkingArea.Width 2, _ Screen.PrimaryScreen.WorkingArea.Height / 2)
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
27
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 Miembros de d StartPosition St tP iti CenterParent CenterScreen M Manual l WindowsDefaultBounds WindowsDefaultLocation D i i Decripcin El formulario est centrado en los lmites de su formulario principal. El formulario est centrado en la pantalla actual y tiene las dimensiones especificadas en el tamao del formulario. L posicin La i i d del lf formulario l i viene i d determinado i d por l la propiedad i d d Location L i El formulario se encuentra colocado en la ubicacin predeterminada de Windows y tiene los lmites establecidos por Windows de forma predeterminada. 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
Establece E t bl la l imagen i de d fondo f d del d l formulario. f l i Establece el icono de la barra de ttulos del formulario.
Contienen un valor lgico que establece si el botn del men de control, maximizar, minimizar o el botn de ayuda aparecen en el formulario. Establece mediante un nmero real el nivel de transparencia de un formulario.
9 De forma predeterminada el nivel de transparencia es de 1,00.
Propiedad P i d d TransparencyKey.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
29
Sizable
Si bl T lWi d SizableToolWindow
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
30
Mostrar formularios
Formulario de inicio.
Se selecciona en la pgina Aplicacin del Diseador de proyectos. Dependiendo del tipo de aplicacin se puede seleccionar:
9 Para aplicaciones de consola.
o Sub Main de un mdulo.
9 Biblioteca de clases.
o No existe un objeto inicial.
Se puede establecer en tiempo de ejecucin mediante cdigo en el mtodo Main() mediante el mtodo Run del objeto j Application pp .
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
31
Se debe crea una instancia del formulario y aplicar el mtodo Show(). 'El proyecto incluye la clase Form3 Dim frm As New Form3 frm.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 Form3 My.Forms.Form2.Show()
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 el formulario propietario.
9 La propiedad DialogResult del formulario permite especificar que valor del enumerado devuelve (p.e. Me.DialogResult = DialogResult.Yes).
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
32
'En el botn Aceptar de Form2 Private Sub Button1_Click 'Esto tambin cierra el formulario Me.DialogResult = DialogResult.OK End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
33
Se puede acceder a las variables pblicas del formulario modal desde el formulario que lo llama.
'En Form2 Public a As Integer = 10 'En Form1 Dim frm As New Form2 frm.ShowDialog() 'Accede al contenido de la variable a de form2 MessageBox.Show("A = " & frm.a)
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 34
35
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 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 p devuelve una coleccin con todos los formularios de la aplicacin.
'Escribe en una etiqueta, el ttulo de todos los formularios abiertos For Each frm As Form In My.Application.OpenForms Label1.Text = Label1.Text & " " & frm.Text Next
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 36
Public Class Form1 'Cada vez que se pulsa el botn 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.Text My.Forms.Form2.Show() y () End Sub End Class Public Class Form2 'Al cerrar Form2, el contenido del TextBox para a Form1 Private Sub Form2_FormClosing(ByVal sender As Object, _ ByVal e As _ System.Windows.Forms.FormClosingEventArgs) _ Handles Me.FormClosing My.Forms.Form1.TextBox1.Text = TextBox1.Text End Sub End Class
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
37
Clase Label
Representa un campo de texto esttico.
Propiedad Text. 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). )
9 Propiedad Autosize. o Un valor lgico True hace que el tamao de la etiqueta se adecue al tamao del texto. 9 Propiedad Autoelipsis. o Si esta t a True, visualiza i li puntos t suspensivos i si i el l texto t t de d la l etiqueta ti t se extiende ti d ms all ll de d 9 Propiedad Image.
su longitud. o Permite establecer una imagen en la etiqueta. La propiedad ImageAlign permite establecer la alineacin de dicha imagen. True es el valor por omisin.
o Puede tomar alguno de los valores de la enumeracin BorderStyle: Fixed3D, FixedSingle o None.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
38
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 enlace 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 sistema Shell("explorer http://www.micompania.es") End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
39
Clase TextBox
Representa p un campo p de texto editable por p el usuario.
Propiedad Text.
9 Permite obtener o establecer el texto del control.
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. 9 La propiedad ScrollBars, aade barras de desplazamiento al cuadro de texto multilinea. y de cadenas Lines. 9 Todas las lneas se almacenan en el array
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
40
Propiedad UseSystemPasswordChar.
9 Todo el texto escrito se visualiza como el carcter que el sistema utiliza como carcter de contrasea.
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
La propiedad AutoCompleteMode A t C l t M d permite indicar si queremos que se autocomplete el contenido de los escrito en un TextBox:
None, no se autocompleta. Append, al teclear los primeros caracteres aaden los que faltan. Sugest, despliega g una lista con las posibles opciones a completar. Sugest Append, aade los que faltan y despliega la lista.
9 FileSystem Especifica el sistema de archivos como origen. 9 HistoryList Incluye los URL en la lista de historial. 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 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
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. texto
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
43
TextBox1.SelectionStart = 3 TextBox1.SelectionLength = 10 TextBox1.SelectedText = "" TextBox1.SelectionLength = 5 TextBox1.Copy() TextBox1.SelectionStart = TextBox1.TextLength TextBox1.Paste() TextBox1.SelectAll() TextBox1.Select(3, 5) T tB 1 C t() TextBox1.Cut()
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
44
Clase Button
Desciende de la clase System.Windows.Forms.ButtonBase, de la que tambin descienden la clase RadioButton R di B tt y CheckBox Ch kB . La propiedad Text, establece la etiqueta del control y permite asignar una tecla de acceso. 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 p propiedad p BackgroundImage g g p permite repetir p una imagen g a lo largo g del rea que ocupa el control.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
45
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 .png contenido en disco.
PictureBox1.Image = FromFile(C:\imgenes\MiImagen.jpg)
Para eliminar dicho contenido hay que asignar a la propiedad Image de PictureBox el literal Nothing.
PictureBox1.Image = Nothing
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
46
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 control 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 Checked cambia bi de d estado. d
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 47
Propiedad Appareance.
9 Normal. Toma el aspecto normal 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
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
49
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
Estado inicial
Primer Click
Segundo Click
Tercer Click
50
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
51
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 desplazamiento de la barra.
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
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 control 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
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
Private Sub TrackBar1_Scroll(ByVal _ sender As System.Object, _ ByVal e As System.EventArgs) _ Handles TrackBar1.Scroll TextBox1.Text = TrackBar1.Value End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
55
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
56
Se pueden utilizar para proporcionar desplazamiento en controles que no las incluyan o para asignar de forma grfica valores numricos. HScrollBar, barra de desplazamiento horizontal 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 con las barras de desplazamiento incluidas en algunos controles.
Es p preferible utilizar el control TrackBar.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
57
Clase NumericUpDown
Proporciona un mecanismo para introducir valores numricos.
Est formado por un cuatro de texto y dos flechas flechas.
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. 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. Realizan el mismo efecto que pulsar las teclas arriba o abajo.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
58
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. Se pueden insertar en tiempo de diseo en la ventana de propiedades. Se p pueden insertar en tiempo p de ejecucin j mediante el mtodo Add de la coleccin Items. 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. Un valor True, permite realizar un ciclo por dichos elementos (del ltimo de la lista pasar al primero).
Propiedad Wrap.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
59
La clase ListBox
Muestra una serie de elementos de los q que el usuario puede seleccionar uno o ms. Los elementos incluidos en el control se guardan en la propiedad Items.
Items es una coleccin del tipo ListBox.ObjectCollection que puede incluir cualquier tipo j utilizado en .NET. de objeto
Los elementos seleccionados se guardan en la propiedad SelectedItems, una coleccin del tipo ListBox.SelectedObjectCollection. Los ndices de los elementos seleccionados se guardan en la propiedad SelectedIndices, una coleccin del tipo ListBox.SelectedIndexCollection ListBox SelectedIndexCollection.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 60
62
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
63
Si queremos buscar y borrar un elemento concreto habr que realizar una bsqueda.
Dim p As persona = New persona(323, "Juarez", "Ana") 'Eli i 'Elimina el l objeto bj t p (A (Ana J Juarez) ) d de l la li lista t 'a partir de la bsqueda de su identificador 'Es necesario codificar la funcin Equal en la estructura Persona For Each obj As persona In lstPersonas.Items If obj.Equals(p) Then lstPersonas.Items.Remove(obj) Exit For End If Next ... 'En la estructura Persona Overloads Function Equals(ByVal o As persona) As Boolean Return o.id = id End Function
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
64
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 puesto lstPersonas.Items.RemoveAt(lstPersonas.Items.IndexOf(obj)) ( ( j))
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
65
La propiedad Text devuelve el contenido del elemento seleccionado convertido tid a cadena. d
Eventos.
Eventos Click y DoubleClick. 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
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles ListBox1.SelectedIndexChanged i TextBox1.Text = (ListBox1.SelectedItem) TextBox2.Text = (ListBox1.SelectedIndex) End Sub Al seleccionar una persona, aparece su identificador Private Sub lstPersonas_SelectedIndexChanged(ByVal lstPersonas SelectedIndexChanged(ByVal sender As System System.Object, Object _ ByVal e As System.EventArgs) _ Handles lstPersonas.SelectedIndexChanged Dim p As persona = lstPersonas.SelectedItem TextBox3.Text = p.id End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
67
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
Objeto
Elemento 02 Nuevo elemento Elemento 04 El Elemento t 05 Elemento 06 Objeto j Elemento 02 Elemento 04 Elemento 05 Objeto 0 2 3
Estado de la seleccin
Seleccionado No seleccionado Seleccionado S l Seleccionado i d No seleccionado
Coleccin SelectedItems
Coleccin SelectedIndices
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
69
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ H dl Handles B Button1.Click tt 1 Cli k For Each elem As Object In ListBox1.SelectedItems ListBox2.Items.Add(elem) Next End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
70
Barras de desplazamiento.
9 La propiedad ScrollAlwaysVisible determina si se ver siembre la barra de desplazamiento. 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
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 estado de alguno de sus elementos.
Utiliza un argumento del tipo System.Windows.Forms.ItemCheckEventArgs 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
Mtodo SetItemChecked(ndice,estado). Permite establecer el elemento a los estados Checked o Unchecked. Mtodo GetItemCheckState(ndice).
Mtodo SetItemCheckState(ndice, estado). Permite establecer el estado del elemento a CheckedState.Checked, CheckedState.Unchecked o CheckedState.Indeterminate.
Debug.WriteLine(CheckedListBox1.GetItemChecked(0)) 'Escribe True Debug.WriteLine(CheckedListBox1.GetItemChecked(2)) 'Escribe False
Permite obtener el estado del elemento. 9 Devuelve CheckedState.Checked CheckedState Checked, CheckedState.Unchecked CheckedState Unchecked o CheckedState.Indeterminate CheckedState Indeterminate.
CheckedListBox1.SetItemCheckState(1, CheckState.Indeterminate) Debug.WriteLine(CheckedListBox1.GetItemCheckState(0))'Escribe Checked Deb g W iteLine(CheckedListBo 1 GetItemCheckState(1))'Esc ibe Indeterminate Debug.WriteLine(CheckedListBox1.GetItemCheckState(1))'Escribe Indete minate Debug.WriteLine(CheckedListBox1.GetItemCheckState(2))'Escribe Unchecked
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
73
Clase ComboBox
Combina un cuadro de lista con un cuadro de texto texto.
DropDownStyle DropDown
Propiedad DropDownStyle.
DropDown. Un cuadro de lista 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. Simple. Una lista no desplegable en la que slo se ve el elemento seleccionado o el que edita el usuario.
9 S Se puede d acceder d a los l elementos l t a partir de la inicial.
DropDownStyle DropDownList
DropDownStyle List
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
74
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
75
FileSystem
FileSystemDirectories
ListItems
Con AutoCompleteSource a CustomSource es necesario rellenar los elementos de la coleccin personalizada en la propiedad AutoCompleteCustomSource CustomSource
AutocompleteMode. AutocompleteMode
Sugest
Append
SugestAppend
76
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
Mens
Los mens se construyen a partir de la clase M MenuStrip St i .
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.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
77
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 p elementos de un men deben tener tecla de acceso rpido.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
78
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 TextBox. TextBox
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 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. o TextBox. Aparece A como un cuadro d de d texto t t editable. dit bl 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
Mens (IV)
Aspecto del men.
P Para agregar un separador d entre t d dos elementos l t d de men, en el l men contextual t t l del d l 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 ejecucin, mediante cdigo 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 clic. 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.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
80
Mens (V)
Teclas de mtodo abreviado.
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.
En el glifo ( ) de etiqueta inteligente del control MenuStrip y seleccionar Insertar 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
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 Archivo End Sub
Si se utilizan elementos de men con casillas de verificacin, los eventos CheckedChanged y CheckStateChanged permite verificar ifi si i se ha h modificado difi d su estado. t d
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
Mens (VII)
Mens emergentes g (mens ( contextuales o Popup 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 ContextMenuStrip.
9 Tambin hay que arrastrarlo a la bandeja de componentes. 9 Aunque en un formulario normalmente slo hay un men principal (objeto (obje o de la a clase c ase MenuStrip e uSt p), puede haber abe tantos a os mens e s emergentes 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
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 ejemplo, el mismo objeto ContextMenuStrip muestra tres mens emergentes distintos, aunque con opciones compartidas.
El men emergente del control TextBox1 muestra los elementos Opcin 1 y Opcin 2
El men emergente del control TextBox2 muestra los elementos Opcin 1 y Opcin 3
El men emergente del formulario muestra los elementos Opcin 1, Opcin 3 y Opcin 4
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
84
Mens (IX)
'Se supone que TextBox1, Textbox2 y Form1 tienen 'la propiedad ContextMenuStrip a ContextMenuStrip1. 'Tambin Tambin existen los elementos de men Opcin1 Opcin1, Opcin2 Opcin2, Opcin3 y Opcin4 Private 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 men ContextMenuStrip1.Items.Clear() ContextMenuStrip1.Items.Add(Opcin1ToolStripMenuItem) ContextMenuStrip1.Items.Add(Opcin2ToolStripMenuItem) ElseIf ContextMenuStrip1.SourceControl Is TextBox2 Then ContextMenuStrip1.Items.Clear() ContextMenuStrip1.Items.Add(Opcin1ToolStripMenuItem) ContextMenuStrip1.Items.Add(Opcin3ToolStripMenuItem) ElseIf ContextMenuStrip1.SourceControl Is Me Then C ContextMenuStrip1.Items.Clear() S i 1 Cl () ContextMenuStrip1.Items.Add(Opcin1ToolStripMenuItem) ContextMenuStrip1.Items.Add(Opcin3ToolStripMenuItem) ContextMenuStrip1.Items.Add(Opcin4ToolStripMenuItem) End If End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
85
Formularios MDI
Aplicaciones SDI (Single Document Interface).
La aplicacin slo permite tener abierta una nica ventana al mismo tiempo (por ejemplo la aplicacin WordPad). Existe una ventana MDI primaria (padre) que acta como contenedor de ventanas MDI secundarias (hijas).
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.
9 Es til cuando una aplicacin requiere de varias ventanas de caractersticas generales o para navegar entre las distintas ventanas de una aplicacin.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
86
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
87
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 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.MdiChildActivate If Me.ActiveMdiChild Is Nothing Then Me.Text = "Aplicacin MDI" Else Me Text = "Aplicacin Me.Text Aplicacin MDI - " & Me Me.ActiveMdiChild.Text ActiveMdiChild Text End If End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
88
E En ocasiones i las l aplicaciones li i MDI presentan t una opcin i de d 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 la propiedad MdiWindowsListItem. Para organizar las ventanas secundarias se utiliza el mtodo LayoutMdi de la clase Form.
9 Organizacin en cascada. 9 Organizacin en mosaico horizontal. 9 Organizacin en mosaico vertical.
Me.LayoutMdi(MdiLayout.Cascade) Me LayoutMdi(MdiLayout TileHorizontal) Me.LayoutMdi(MdiLayout.TileHorizontal) Me.LayoutMdi(MdiLayout.TileVertical) Me.LayoutMdi(MdiLayout.ArrangeIcons)
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
89
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
90
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
91
9 Cada vez que se da la opcin Nuevo del men Archivo se abrir una nueva ventana con el ttulo Ventana xxx. 9 La opcin Salir del men Archivo terminar la aplicacin. 9 El men archivo se combinar con el de la ventana principal y aadir la opcin Cerrar que cerrar la ventana. 9 El men ventana tendr como opciones: p
o o o Cerrar todo. Cierra todas las ventanas. Una lista de las ventanas abiertas. Una opcin Organizar con submens para organizar las ventanas en cascada, en mosaico horizontal, mosaico vertical u organizar iconos. iconos
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
92
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
93
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
94
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
95
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
96
Los cuadros de dilogos no realizan por si ninguna accin, slo sirven para seleccionar valores que, mediante propiedades, se utilizarn ms tarde.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
97
La propiedad Title permite especificar el ttulo del cuadro de dilogo, por omisin aparecer la cadena Abrir. Recuperar el archivo seleccionado.
La propiedad FileName guarda el nombre del archivo seleccionado. Si se escribe directamente el nombre del archivo en el cuadro de texto correspondiente es posible detectar si el archivo o la carpeta existe mediante di t las l propiedades i d d lgicas l i Ch kFil E i t y CheckFileExist CheckPathExist.
9 Si estn a True, se detectar si existe ese nombre de archivo o carpeta al pulsar el botn Aceptar del cuadro de dilogo.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
98
La propiedad FilterIndex permite decidir mediante un nmero entero el ndice del tipo de archivo que aparecer inicialmente.
La propiedad ShowReadOnly es un valor lgico que permite que aparezca la casilla de verificacin Abrir como slo lectura.
La propiedad ReadOnlyChecked permitir recuperar el valor por el usuario en esa casilla para p su posterior p proceso. p introducido p
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
99
100
Private Sub Cargar_Click(ByVal Cargar Click(ByVal sender As System System.Object, Object _ ByVal e As System.EventArgs) Handles Cargar.Click OpenFileDialog1.Filter = "Todos los archivos (*.*)|*.*|" & _ "Archivos grficos|*.bmp;*.gif;*.jpg;*.png" OpenFileDialog1.FilterIndex = 1 If OpenFileDialog1.ShowDialog() = DialogResult.OK Then PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName) Else PictureBox1.Image = Nothing End If End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 101
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
102
Mantiene las propiedades Title, InitialDirectory, Filename, Filter, FilterIndex. No N admite d it multiseleccin. lti l i
La propiedad Filenames pierde su sentido.
Las propiedades CheckFileExist, CheckPathExist, ShowReadOnly y ReadOnlyCheck existen, existen pero pierden su utilidad. Como nuevas propiedades tiene CreatePrompt y OverwritePrompt O e te o pt que a avisan sa s si se va aac crear ea u un a archivo c o nuevo ue o o se va a sobreescribir un archivo. La propiedad DefaultExt permite incluir una cadena para la extensin por omisin del archivo.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
103
Propiedad AllowFullOpen.
Con un valor True, permite a los usuarios elegir un color personalizado.
La propiedad Color permite devuelve el color seleccionado al pulsar el botn Aceptar. Aceptar
If ColorDialog1.ShowDialog() = DialogResult.OK Then Button5 BackColor = ColorDialog1 Button5.BackColor ColorDialog1.Color Color End If
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 104
En principio aparecen todas las fuentes, pero podemos seleccionar g en las propiedades: p p las deseadas mediante un valor lgico
AllowVectorFonts. Admite o no fuentes vectoriales. AllowVerticalFonts. Admite o no fuentes verticales. y. Admite slo fuentes de p paso fijo. j FixedPichOnly
Las propiedades MaxSize y MinSize permiten definir el tamao mximo y mnimo de la lista de tamaos de fuentes.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
105
... Dim fuente As Font = Label1.Font 'Para poder recuperar la fuente si se pulsa Cancelar If FontDialog1.ShowDialog() = DialogResult.OK Then Label1.Font = FontDialog1.Font Else El Label1.Font = fuente 'Si se pulsa Cancelar se vuelve a la fuente original End If ... Private Sub FontDialog1_Apply(ByVal sender As System.Object, _ ByVal e As System.EventArgs) System EventArgs) Handles FontDialog1 FontDialog1.Apply Apply Label1.Font = FontDialog1.Font End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 106
PrintToFile. Devuelve un valor lgico si est marcada la casilla de verificacin. verificacin La propiedad PrinterSettings devuelve el objeto PrinterSettings modificado por el cuadro de dilogo.
AllowPrintToFile. Habilita o deshabilita la casilla de verificacin Imprimir a un archivo. AllowSelection. Habilita o deshabilita el botn de radio Seleccin. AllowSomePages. Habilita o deshabilita el botn de radio Pginas para imprimir slo un intervalo de pginas.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
107
FromPage. Devuelve o establece la pgina inicial. ToPage g . Devuelve o establece la p pgina g final.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
108
Introduccin a la impresin
Para poder trabajar con las clases de impresin es necesario importar el espacio de nombres al comienzo del cdigo:
Imports System.drawing.printing
PrintPage recibe un argumento de la clase PrintPageEventArgs que se utiliza para tomar las caractersticas de la pgina y el objeto Graphics que se imprimir.
e.MarginBounds. Rectngulo con los mrgenes de la pgina. e.PageBounds. Rectngulo con los lmites fsicos de la pgina. e.HasMorePages H M P .V Valor l lgico l i que indica i di si i hay h o no ms pginas i a imprimir. e.PageSettings. Configuracin de la pgina para la pgina actual.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
110
e.Graphics.DrawImage(image,X,Y,ancho,alto).
9 Imprime el objeto Image especificado en la posicin X e Y de la pgina con un ancho y alto especfico.
'Imprime el contenido de TextBox1 Private ate Sub PrintDocument1 t ocu e t _PrintPage(ByVal t age( y a sender se de As s System.Object, Syste .Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) _ Handles PrintDocument1.PrintPage Dim margenIzq As Single = e.MarginBounds.Left Dim margenSup As Single = e.MarginBounds.Top e.Graphics.DrawString(TextBox1.Text, G hi D St i (T tB 1 T t M Me.Font, F t B Brushes.Black, h Bl k _ margenIzq, margenSup) End Sub
9 En http://msdn.microsoft.com/en-us/library/xdt36c58.aspx se puede encontrar informacin adicional sobre la impresin. impresin
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
111
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
112
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
113
Clase DateTimePicker
Proporciona un mecanismo para la introduccin de valores de tipo D t Ti . DateTime
Presenta el aspecto de una lista deplegable que se despliega como un calendario. Es posible limitar las fechas a visualizar mediante las propiedades MaxDate y MinDate i .
Obtener el valor.
La propiedad Text obtiene o establece una cadena con el valor que aparece en el control. La propiedad Value obtiene o establece un valor de tipo DateTime. La propiedades Day, Month, Year, DayOfWeek, Hour, Minute, Second y Millisecond devuelven las partes de la fecha.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
114
Clase MonthCalendar
Muestra una interfaz grfica en forma de calendario mediante la que el usuario puede manejar j informacin i f i relativa l ti a fechas. f h
El nmero de meses que aparece se puede modificar mediante la propiedad CalendarDimensions. La propiedad MaxSelectionCount permite determinar el nmero mximo de das seleccionados. La propiedades SelectionStart y SelectionEnd obtienen o establecen la fecha de inicio y fin. L propiedad La i d d SelectionRange establece t bl o devuelve d l un objeto bj t de d tipo ti SelectionRange que contiene dos fechas con el inicio y el fin del periodo.
'Selecciona el da actual y los tres siguientes 'y muestra las fechas de inicio y fin en etiquetas MonthCalendar1.SelectionRange = _ New SelectionRange(Now(), Now().AddDays(3)) Label1.Text = MonthCalendar1.SelectionRange.Start Label2.Text = MonthCalendar1.SelectionRange.End
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
115
Clase Timer
Implementa un temporizador que produce un evento en los i intervalos l fijados fij d por el l programador. d El evento Tick, se producir cada vez que se cumple el intervalo previsto por el programador y el control est activado. La propiedad Interval I t l permite fijar en milisegundos el intervalo de tiempo. La propiedad Enabled admite un valor lgico que permite activar o desactivar el temporizador. temporizador
'Muestra en Label1 un reloj que se actualiza cada milisegundo Private Sub Timer1_Tick(ByVal _ sender As Object, ByVal e As System.EventArgs) _ Handles Timer1.Tick 'Label1 muestra la hora del sistema actualizada 'La propiedad Interval se debe establecer a 1000 'La propiedad Enabled se debe establecer a True Label1 Text = DateTime.Now.ToString( Label1.Text DateTime Now ToString("hh:mm:ss") hh:mm:ss ) End Sub
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010 116
Clase ToolTip
Muestra texto de ayuda cuando el curso se para sobre el control. El control T ToolTip lTi se coloca en la bandeja de componentes. componentes
Se puede usar un nico control ToolTip para todos los componentes del formulario.
9 En tiempo de diseo, para asociar un control con un ToolTip, en la ventana de propiedades del control al que se quiere aadir el texto se introduce el texto en ToolTip en ToolTip1. 9 En tiempo de ejecucin, ejecucin se puede hacer mediante el mtodo SetToolTip. SetToolTip
ToolTip1.SetToolTip(Button1, "Guardar cambios")
InitialDelay, tiempo en milisegundos que el usuario debe apuntar al control asociado para que aparezca la informacin del control. ReshowDelay, tiempo que tarda en aparecer el texto cuando el ratn de mueve desde un control asociado a otro. AutoPopDelay, tiempo durante el cual se muestra la informacin del control asociado. AutomaticDelay, permite establecer las dems propiedades en funcin del valor asignado a esta propiedad:
9 Si AutomaticDelay tiene el valor N
o InitialDelay se establece en N, ReshowDelay se establece en N/5 y AutoPopDelay se establece en 5N.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
117
Clase TabControl
Muestra un formulario con mltiples fichas similares a las pestaas de las carpetas.
Cada ficha puede tener varios controles. Se utilizan para cuadros de dilogo con varias pginas (por ejemplo para pginas de propiedades) propiedades).
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
118
Clase TreeView
Muestra un conjunto de elementos organizado de f forma j jerrquica. i Cada elemento es un objeto de la clase TreeNode a la que se accede por medio de la propiedad Nodes del elemento.
La propiedad Nodes del control TreeView contendra una coleccin de nodos de tipo nodo raz. Cada nodo sera un objeto de la clase TreeNode que a su vez tiene ti una coleccin l i de d nodos d representada tambin por su propiedad Nodes.
9 Cada nodo permite tener asociado un icono con la propiedad ImageKey.
o ImageKey es un nmero que hacer referencia a una i imagen almacenada l d en un control t l ImageList al l que se referencia por la propiedad ImageList.
Coleccin Nodes de TreeView: Raz01, Raz02 y Raz03 Coleccin Nodes de Raz01: Elemento01, Elemento01 Elemento02, Elemento02 Elemento03. Coleccin Nodes de Elemento02: Elemento04, Elemento05.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
119
TreeView1.SelectedNode.Nodes.Add(miNodo) ( )
Contenido de un nodo.
La propiedad d d Text de d la l clase l TreeView muestra la l etiqueta del d l nodo d seleccionado. La propiedad Text de la clase TreeNode muestra la etiqueta del nodo. La propiedad FullPath de la clase TreeNode devuelve una cadena con la ruta de acceso del nodo
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
120
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
121
Clase ListView
Muestra una lista de elementos con iconos o encolumnado. Puede mostrar cuatro vistas mediante los valores de la propiedad View:
LargeIcon. SmallIcon. List. Details.
LargeIcon
SmallIcon
List
Details
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
123
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
124
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
125
Propiedad SelectedItems. Devuelve una coleccin de ListViewItem con los elementos seleccionados.
o ListView1.SelectedItems(0).Text ( ) , devuelve la etiqueta q del primer p elemento seleccionado.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
126
Eliminacin de elementos.
Mtodo RemoveAt de la coleccin ListViewItemsCollection, indicndole el ndice del elemento a borrar.
ListView1.Items.RemoveAt(ListView1.SelectedIndices(0))
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
127
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
128
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
129
Clase ImageList
Se utiliza como contenedor de imgenes que podrn ser utilizadas por otros controles a partir del ndice de cada imagen. Se puede hacer referencia a un ImageList en los controles ListView, TreeView, TabControl, Button, CheckBox, RadioButton y Label.
En el control ListView la referencia a la lista de imgenes se hace mediante las propiedades LargeImageList y SmallImageList. En el resto, a partir de la propiedad ImageList.
La imgenes se gestionan en tiempo de diseo mediante el Editor de la coleccin Images accesible por la propiedad Images del ImageList. La referencia a una imagen concreta de la seleccin se hace en cada control por medio de la propiedad ImageIndex.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
130
Clase ToolStrip
Crea una barra de herramientas que puede contener botones, cuadros de texto texto, botones desplegables desplegables, ComboBox, ComboBox etiquetas o separadores separadores.
Para agregar elementos en tiempo de diseo a la barra utiliza la coleccin Items de la ventana de propiedades.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
131
132
DropDownButton (clase ( l ToolStripDropDownButon). ) Separator (clase ToolStripSeparator). ComboBox (clase ToolStripComboBox). TextBox (clase ToolStripTextBox).
9 Representa una barra de progreso.
9 Representa un ComboBox, con caractersticas similares. 9 Representa p un TextBox con caractersticas similares.
o Las propiedades Minimum y Maximum representan los valores mnimos de la barra. o La L propiedad i d d Value l representa t el l valor l actual t l de d la l barra. b o La propiedad Step representa el valor con el que se incrementar la barra de progreso al ejecutar el mtodo PerformStep. o El mtodo Increment, permite incrementar la propiedad Value al margen del valor que tenga Step.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
133
Control StatusStrip
Barra de estado que muestra informacin sobre los objetos que se visualizan en un formulario o de las acciones que se estn ejecutando ejecutando. Normalmente est compuesto de objetos ToolStripStatusLabel, aunque tambin puede mostrar ToolStripDropDownButton, ToolStripSplitButton y ToolStripProgessBar. Para aadir estos controles se utiliza el editor de la coleccin de elemento StatusStrip.
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
134
Ejemplo.
Private Sub Button1_MouseHover(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.MouseHover 'Al pasar el ratn sobre el botn se muestra el texto en la barra de estado ToolStripStatusLabel1.Text = "Guardar los cambios" End Sub Private Sub Form2_MouseHover(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.MouseHover 'Es necesario para borrar el texto cuando se sale del botn ToolStripStatusLabel1.Text = "" End d Sub b
Universidad Pontificia de Salamanca (Campus Madrid) Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
135