Documentos de Académico
Documentos de Profesional
Documentos de Cultura
P
Persona-Ordenador
O d
d
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.
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.
Al ejecutarse
j
t
una aplicacin
li i basada
b
d en eventos
t
9 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 mensajes
9 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
control
t l y, sii existe,
i t ejecuta
j
t ell cdigo
di correspondiente.
di t
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
La instruccin RemoveHandler,
RemoveHandler permite desactivar un controlador de eventos
eventos.
RemoveHandler NombreObjeto.NombreEvento, AddressOf NombreControladorDeEventos
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
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
E
Establece
t bl
u obtiene
bti
ell texto
t t asociado
i d all 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.
Propiedad TextAlign.
10
10
11
11
Las fuentes de los componentes de un objeto contenedor, toman las caractersticas de los
objetos contenidos.
Descripcin
Valores
Bold
True o False
Italic
True o False
Name
Cadena
Size
Strikeout
True o False
Underline
True o False
Unit
12
12
13
13
Tareas comunes:
tamao
ta
a o y pos
posicin
c (II)
( )
Propiedad
p
Size.
Hace referencia a una estructura System.Drawing.Size.
9 Constructor: Size(ancho,alto).
9 Miembros Width y Height.
OtroBotn.Size = New Size(100, 50)
MiBotn.Size = OtroBotn.Size
Mtodo SetBounds().
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)
14
14
Tareas comunes:
tamao
ta
a o y pos
posicin
c (III)
(
)
Propiedad
p
Bounds.
Hace referencia a una estructura de tipo
System.Drawing.Rectangle.
9 Propiedades X, Y, Width y Height.
OtroBotn.Bounds = MiBotn.Bounds 'Pone a OtroBotn encima de MiBotn
Propiedad ClientSize.
D
Devuelve
l un objeto
bj t Size
i
con ell ttamao
d
dell 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
15
15
Tareas comunes:
tamao
ta
a o y pos
posicin
c (IV)
( )
Propiedad
Descripcin
Valores
Location
Size
Un valor entero
Right
Un valor entero
Bottom
Un valor entero
Bounds
ClientRectangle
ClientSize
Anchor
Un miembro de la enumeracin
AnchorStyles
Dock
Un miembro de la enumeracin
DockStyles
Mtodo
Descripcin
Devuelve
BringToFront
SendToBack
SetBounds(X,Y,ancho,
alto)
SetSize(ancho, alto)
16
16
Evento KeyPress.
control_KeyPress(sender As Object, e As KeyPressEventArgs)
17
17
Tareas comunes:
manejo
a ejo del
de tec
teclado
ado (II)
( )
Private Sub TextBox1_KeyPress(ByVal
y
( y
sender As Object,
j
, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress
'Procesa slo las teclas numricas y las teclas de control
If Not (Char.IsDigit(e.KeyChar) Or Char.IsControl(e.KeyChar)) Then
El motor ignora la tecla
'El
e.Handled = True
End If
End Sub
Private Sub TextBox2
TextBox2_KeyPress(ByVal
KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox2.KeyPress
'Convierte los caracteres alfabticos a maysculas
If Char.IsLetter(e.KeyChar) Then
La propiedad SelectedText devuelve el texto seleccionado
'La
'Puede ser una cadena nula si no hay seleccionado ningn texto
'En ese caso ser una cadena nula situada en la posicin del cursor
TextBox2.SelectedText = Char.ToUpper(e.KeyChar)
e.Handled = True
End If
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
18
18
Tareas comunes:
manejo
a ejo de
del tec
teclado
ado (III)
(
)
Eventos KeyUp
y p y KeyDown.
y
Permiten detectar las teclas especiales mediante el argumento e
de la clase KeyEventArgs.
9 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
y
e As System.Windows.Forms.KeyEventArgs)
y
y
g ) _
Handles TextBox2.KeyDown
'Detecta si se ha pulsado la tecla Shift+F1
If e.Shift And e.KeyCode = Keys.F1 Then
MsgBox("Se ha pulsado Shift+F1")
End If
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
19
19
20
20
Tareas comunes:
manejo
a ejo de
del ratn
at (II)
( )
MouseMove, MouseDown, MouseWheel y MouseUp reciben un
argumento de la clase MouseEventArgs.
Miembros de MouseEventArgs.
Miembros de MouseEventArgs
Propiedad
Descripcin
Valores
Button
Clicks
Delta
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.
Entero
Entero
Entero
21
21
Descripcin
Valores
Enabled
Lgico
TabStop
Lgico
TabIndex
Entero
Visible
Lgico
CausesValidation
Lgico
CanFocus
Determina si un control puede tomar el foco de entrada (si Visible y Enabled estn a True)
Lgico
Focused
Lgico
Mtodo
Descripcin
Valores devueltos
Focus()
Lgico (True si se ha
podido seleccionar el
control o false en
caso contrario)
GetNextFocus(control, adelante)
Control
Select()
Ninguno
22
22
Enter.
GotFocus.
Leave.
Validating.
Validated.
LostFocus.
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 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
23
23
La clase Form
Representa una ventana o cuadro de dilogo de la aplicacin.
Desde
D d ell 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.
Normalmente
N
l
t contendr
t d llas d
declaraciones
l
i
y ell cdigo
di de
d la
l aplicacin.
li i
En el archivo Formx.designer.vb
En el archivo Formx.vb
Formx vb
Public Class Form1
'Cdigo de usuario para manejar el formulario
...
End Class
24
24
2. Evento Shown()
3. Evento Activated().
25
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.
26
26
27
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
D i i
Decripcin
CenterParent
CenterScreen
M
Manual
l
L posicin
La
i i d
dell fformulario
l i viene
i
d
determinado
i d por lla propiedad
i d d Location
L
i
WindowsDefaultBounds
WindowsDefaultLocation
28
28
Establece
E t bl
la
l imagen
i
de
d fondo
f d del
d l formulario.
f
l i
Propiedad Icon.
Propiedades ControlBox,
ControlBox MaximizeBox,
MaximizeBox MinimizeBox,
MinimizeBox
HelpButton.
Propiedad Opacity.
O
it
Propiedad
P i d d TransparencyKey.
29
29
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
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.
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
p
en la barra de herramientas de Windows.
Sizable
Con frecuencia se utiliza como ventana principal. Se le puede cambiar el tamao. Puede incluir un
men 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
SizableToolWindow
Ventana
V
t
de
d herramientas
h
i t de
d tamao
t
variable.
i bl Una
U ventana
t
de
d herramientas
h
i t no aparece en la
l b
barra
de tareas ni en la ventana que aparece cuando el usuario presiona ALT+TAB.
30
30
Mostrar formularios
Formulario de inicio.
Se selecciona en la pgina
9 Biblioteca de clases.
o No existe un objeto inicial.
Sub Main()
Dim frm As New Form1
Application.Run(frm)
End Sub
31
31
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()
9 ShowDialog() puede pasar como argumento una referencia a otro formulario para cambiar el
formulario propietario.
32
32
En los no modales,
modales al abrir con el mtodo Show,
Show contina el evento que ha realizado la llamada.
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 Form1
Private Sub Button1
Button1_Click()
Click( )
Dim frm As New Form2
Dim r As DialogResult = frm.ShowDialog()
Select Case r
Case DialogResult.OK
Acciones cuando se pulsa Aceptar
'Acciones
Case DialogResult.Cancel
'Acciones cuando se pulsa Cancelar
Case DialogResult.Retry
'Acciones cuando se pulsa Reintentar
End Select
End Sub
33
33
'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
34
'En Form2
MessageBox.Show(Form1.otraVariable)
35
35
36
36
37
37
Clase Label
Representa un campo de texto esttico.
Propiedad Text.
Text
o Alineacin del texto. Puede contener alguno de los valores del enumerado ContentAlign
(BottomCenter, BottomLeft, BottomRight, MiddleCenter, MiddleLeft,
MiddleRight TopCenter,
MiddleRight,
TopCenter TopLeft,
TopLeft TopRight).
TopRight)
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.
o Si esta
t a True, visualiza
i
li puntos
t suspensivos
i
sii ell texto
t t de
d la
l etiqueta
ti
t se extiende
ti d ms
all
ll de
d
su longitud.
9 Propiedad Image.
38
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)
39
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.
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.
9 Todas las lneas se almacenan en el arrayy de cadenas Lines.
40
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.
41
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:
9
9
9
9
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.
42
42
43
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()
44
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.
45
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)
46
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
47
47
Propiedad Appareance.
9 Normal
Normal. Toma el aspecto normal
normal.
9 Button. Toma el aspecto de botn.
48
48
49
49
Clase CheckBox
Representa un grupo de opciones no excluyentes.
El control puede devolver de forma predeterminada tres estados
distintos: Checked, Unchecked o Indeterminate.
Estado inicial
Primer Click
Segundo Click
Tercer Click
50
50
51
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.
52
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
53
Evento ValueChanged.
9 Se produce cuando cambia la propiedad Value, ya sea por cdigo o
por una accin del usuario.
p
54
54
55
55
56
56
57
57
Clase NumericUpDown
Proporciona un mecanismo para introducir valores numricos.
La p
propiedad
p
Value establece o devuelve el valor del cuadro de texto asociado.
58
58
Clase DomainUpDown
Tiene una funcionalidad y un aspecto similar a la clase
NumericUpDown.
Propiedad Wrap.
Un valor True, permite realizar un ciclo por dichos elementos (del ltimo de la lista pasar al
primero).
59
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
60
60
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.Items
.Add(objeto)
j
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
ListBox1.Items.Add("Elemento
ListBox1.Items.Add("Elemento
ListBox1.Items.Add("Elemento
ListBox1.Items.Add("Elemento
Li tB 1 It
ListBox1.Items.Add("Elemento
Add("El
t
ListBox1.Items.Add("Elemento
01")
02")
03")
04")
05")
06")
61
61
62
62
63
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
64
64
65
65
Eventos.
Eventos Click y DoubleClick.
Evento SelectedItemChanged.
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.
66
66
67
67
o La seleccin se puede realizar marcando cada elemento y utilizando las teclas CTRL,
SHIFT o llas tteclas
l d
dell cursor.
68
68
Objeto
Estado de la seleccin
Elemento 02
Seleccionado
Nuevo elemento
No seleccionado
Elemento 04
Seleccionado
El
Elemento
t 05
S l
Seleccionado
i
d
Elemento 06
No seleccionado
Coleccin SelectedItems
ndice
Objeto
j
Elemento 02
Elemento 04
Elemento 05
Coleccin SelectedIndices
ndice
Objeto
69
69
70
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.
71
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.
72
72
Mtodo GetItemChecked(ndice).
Mtodo SetItemChecked(ndice,estado).
Permite establecer el elemento a los estados Checked o Unchecked.
Mtodo GetItemCheckState(ndice).
Devuelve True si el elemento est activado (estado Checked o Indeterminate) o False en caso contrario
contrario.
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
73
Clase ComboBox
Combina un cuadro de lista con un
cuadro de texto
texto.
DropDownStyle
DropDown
9 No permite multiseleccin.
9 No captura el evento DoubleClick.
9 La propiedad
p opiedad SelectedIndex
S l t dI d
tambin
vale -1 si el usuario est editando el
texto.
Propiedad DropDownStyle.
DropDownStyle
DropDownList
DropDownStyle
List
74
74
None, no se autocompleta.
Append, al teclear los primeros caracteres aaden los que faltan.
Sugest, despliega una lista con las posibles opciones a completar.
SugestAppend, aade los caracteres que faltan y despliega la lista.
9
9
9
9
9
9
75
75
FileSystem
FileSystemDirectories
HistoryList, AllUrl
y RecentlyUsedList
ListItems
AutocompleteMode.
AutocompleteMode
Sugest
Append
SugestAppend
76
76
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.
77
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.
78
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.
79
79
Mens (IV)
Aspecto del men.
P
Para agregar un separador
d entre
t d
dos elementos
l
t d
de men,
en ell 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
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.
No debera ser posible acceder a aquellas opciones no disponibles: la interfaz debe mostrar pistas
visuales.
Tambin es posible que no se muestren las opciones mediante la propiedad Visible.
80
80
Mens (V)
Teclas de mtodo abreviado.
81
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
82
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.
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.
83
83
Mens (VIII)
El evento Opening se produce antes de que se abra el men contextual.
Se puede utilizar para aadir
En el ejemplo
ejemplo, el mismo objeto ContextMenuStrip muestra tres mens
emergentes distintos, aunque con opciones compartidas.
84
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
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).
9 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.
86
86
87
87
88
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.
Me.LayoutMdi(MdiLayout.Cascade)
Me LayoutMdi(MdiLayout TileHorizontal)
Me.LayoutMdi(MdiLayout.TileHorizontal)
Me.LayoutMdi(MdiLayout.TileVertical)
89
89
90
90
Nuevo
(MergeAction=Replace; MergeIndex = -1)
Nuevo
(MergeAction=MatchOnly; MergeIndex = -1)
Abrir...
(MergeAction=Append; MergeIndex = -1)
Abrir...
(MergeAction=Replace; MergeIndex = -1)
Guardar...
G
d
(MergeAction=Append; MergeIndex = -1)
Salir
(MergeAction=Append; MergeIndex = -1)
Ventana
(MergeAction=Append; MergeIndex = -1)
Cerrar todo
(MergeAction=Append; MergeIndex = -1)
Ayuda
(MergeAction=Append; MergeIndex = -1)
Contenido
(MergeAction=Append; MergeIndex = -1)
Buscar
(MergeAction=Append; MergeIndex = -1)
Acerca de...
(MergeAction=Append; MergeIndex = -1)
Guardar...
(MergeAction=Replace; MergeIndex = -1)
Cerrar
(MergeAction=Insert; MergeIndex = 3)
Edicin
((MergeAction=Insert;
g
; MergeIndex
g
= 1))
Deshacer
(MergeAction=Append; MergeIndex = -1)
Ayuda
(MergeAction=MatchOnly; MergeIndex = -1)
ndice
(MergeAction=Insert; MergeIndex = 1)
Acerca de...
(MergeAction=Remove; MergeIndex = -1)
Men resultante
Archivo
Combinacin de ambos
Nuevo
Abrir
Guardar
Cerrar
Salir
Edicin
De la ventana secundaria
Deshacer
Ventana
Del contenedor
Cerrar todo
Ayuda
Combinacin de ambos
Contenido
ndice
Buscar
91
91
92
92
93
93
94
94
95
95
96
96
Los cuadros de dilogos no realizan por si ninguna accin, slo sirven para
seleccionar valores que, mediante propiedades, se utilizarn ms tarde.
97
97
98
98
Cuadro de dilogo
OpenFileDialog
Ope
e a og (
(II)
)
Filtrar los archivos seleccionados.
La propiedad Filter permite aadir elementos a la lista de tipos de
archivos.
9 El valor de esa propiedad ser una cadena con el siguiente formato:
o T
Texto1|filtro1|Texto2|filtro2.
1|fil 1|T
2|fil 2
o Para que aparezcan todos los archivos, archivos txt o algunos archivos grficos:
OpenFileDialog1.Filter = "Todos los archivos (*.*) |*.*|" & _
"Archivos de texto (*.txt) |*.txt| " & _
"Archivos grficos |*
|*.gif;*.bmp;*.jpg
gif;* bmp;* jpg
99
99
Cuadro de dilogo
OpenFileDialog
Ope
e a og (
(III)
)
Seleccin mltiple.
p
La propiedad Multiselect permite seleccionar mltiples archivos
del cuadro de dilogo.
En este caso los archivos seleccionados se cargan en un array de
cadena
d
representado
d por la
l propiedad
d d FileNames.
Ejemplo: carga en un ListBox nombres de los archivos
seleccionados.
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
'Recorre todos los elementos del array FileNames
For Each str As String In OpenFileDialog1.FileNames
'FileNames contiene la especificacin completa del archivo
'P
'Para
obtener
bt
slo
l el
l nombre,
b
troceo
t
la
l cadena
d
con Split
S lit
Dim aux() As String = str.Split("\")
'y me quedo con el ltimo elemento del array resultante
ListBox1.Items.Add(aux(aux.GetUpperBound(0)))
Next
End If
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodrguez Baena, Escuela Superior de Ingeniera y Arquitectura, 2010
100
100
Cuadro de dilogo
OpenFileDialog
Ope
e a og (
(IV)
)
Ejemplo: seleccionar un
archivo grfico y cargarlo en
un control PictureBox.
101
101
Cuadro de dilogo
FolderBrowserDialog
o de
o se
a og
Permite seleccionar una carpeta a partir de un cuadro de dilogo
estndar.
estndar
La propiedad SelectedPath devuelve el nombre de la carpeta
seleccionada.
posible
b activar
a a u ocultar
o u a el botn
bo Nueva
u a carpeta
a p a mediante
da
la
a
Es po
propiedad ShowNewFolderButton.
La carpeta inicial ser la que indique la propiedad RootFolder.
Puede tomar alguno de los valores de la enumeracin
Environment SpecialFolder:
Environment.SpecialFolder:
9
9
9
9
9
9
9
Desktop. El escritorio.
MyComputer. Mi PC.
Personal. Mis documentos.
MyMusic Mi msica.
MyMusic.
msica
MyPictures. Mis imgenes.
ProgramFiles. Archivos de programa
102
102
103
103
Propiedad AllowFullOpen.
Con un valor True, permite a los usuarios elegir un color
personalizado.
104
104
105
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
106
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.
107
107
108
108
Introduccin a la impresin
109
109
110
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.
111
111
112
112
113
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.
114
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
115
115
Clase Timer
Implementa un temporizador que produce un evento en los
i
intervalos
l fijados
fij d por ell 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
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.
117
117
Clase TabControl
Muestra un formulario con mltiples fichas similares a las pestaas de
las carpetas.
118
118
Clase TreeView
Muestra un conjunto de elementos organizado de
f
forma
jjerrquica.
i
Cada elemento es un objeto de la clase
TreeNode a la que se accede por medio de la
propiedad Nodes del elemento.
119
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
120
121
121
122
122
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
123
123
124
124
125
125
126
126
Eliminacin de elementos.
Mtodo RemoveAt de la coleccin ListViewItemsCollection,
ListViewItemsCollection
indicndole el ndice del elemento a borrar.
ListView1.Items.RemoveAt(ListView1.SelectedIndices(0))
127
127
128
128
129
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.
130
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.
131
131
132
132
DropDownButton (clase
( l
ToolStripDropDownButon).
)
9 Al pulsarlo muestra un men desplegable.
o El Click del botn slo despliega el men.
9 Representa
p
un TextBox con caractersticas similares.
133
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.
134
134
Propiedad Spring.
Spring
Propiedad BorderSides.
Propiedad BorderStyle.
Ejemplo.
135
135