Fundamentos de Interacción
P
Persona-Ordenador
O d
d
7. Diseño de una aplicación
Windows Forms en VB.NET
Luís Rodríguez Baena (
[email protected])
Universidad Pontificia de Salamanca (campus Madrid)
Escuela Superior de Ingeniería y Arquitectura
1
Programación en Windows
Programación convencional (lineal)
)
g
(
● Acciones previsibles e independientes del entorno donde se
ejecutan.
● Opciones de usuario limitadas a las posibilidades que el
● Opciones de usuario limitadas a las posibilidades que el
programador dicte.
El control de las opciones se hace por medio de bucles y estructuras
selectivas.
● No adecuada para entornos gráficos o multitarea.
El número de eventos disponibles es demasiado grande para poder
controlarlos todos.
La elección de orden del proceso de eventos es compleja.
La estructura de un programa lineal no facilita la espera a que se
produzcan los eventos.
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
2
2
Programación en Windows (II)
Conceptos clave en la programación en Windows.
● Ventanas.
Región de la pantalla.
o Ventanas de documentos, botones, listas desplegables, cuadros de diálogo.
El SO administra todas las ventanas asignándolas un identificador
El SO administra todas las ventanas asignándolas un identificador.
● Eventos.
Acción que se ejecuta sobre el sistema.
El sistema operativo rastrea continuamente las ventanas en busca de
El sistema operativo rastrea continuamente las ventanas en busca de
sucesos.
● Mensajes.
Cuando se produce un evento se envía un mensaje al sistema
operativo
operativo.
El mensaje guarda información sobre el suceso y la ventana que lo ha
producido.
El sistema operativo lo registra y almacena en una cola de mensajes.
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
3
3
Programación en Windows (III)
Programación orientada a eventos
● El entorno (sistema operativo, usuario, etc.) puede actuar sobre el
programa en cualquier momento.
● El programa debe responder a las acciones del entorno no
proporcionadas de forma lineal
proporcionadas de forma lineal.
● No se debe prever un desarrollo lineal del flujo del programa.
Las distintas acciones se activan como respuesta a sucesos que ocurren en
el entorno.
j
t
Al
● Al ejecutarse una aplicación basada en eventos
ió b
Windows rastrea las ventanas.
Si se detecta un evento en alguna ventana manda un mensaje al sistema
d
li
t
operativo y lo almacena en la cola de mensajes
El sistema operativo lo procesa y lo transmite a las demás ventanas,
indicando el evento y el identificador de la ventana que lo produce
(Handle).
La aplicación busca el controlador de eventos asociado a ese evento en el
control y, si existe, ejecuta el código correspondiente.
l ódi
i t
di
t
t
j
t
l
i
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
4
4
Programación en Windows (IV)
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
5
5
Programación en Windows (V)
Estructura de un procedimiento de evento.
p
● Cada componente de Windows Forms tiene asociado una serie
de eventos a los que responde.
Los controladores de eventos tienen dos argumentos:
Los controladores de eventos tienen dos argumentos:
o Sender, de tipo Object y tiene una referencia al objeto que lo ha
o e, un objeto de la clase EventArgs o alguna de sus derivadas con
producido.
i f
información del evento.
ió d l
t
El nombre corresponde con el nombre del control.
La cláusula Handles indica que métodos de eventos están
asociados al procedimiento
asociados al procedimiento.
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
6
6
Programación en Windows (VI)
Private Sub MiEvento(ByVal sender As System.Object, _
E
)
B V l
ByVal e As System.EventArgs) _
Handles MiBotón.Click, MiBotón.Leave, OtroBotón.Click
A S t
tA
"o MiBotón a perdido el foco")
MessageBox.Show("Se ha pulsado MiBotón, se ha pulsado OtroBotón " & _
If sender Is MiBotón Then
Else
End If
MessageBox.Show("Se ha pulsado MiBotón o MiBotón ha perdido el foco")
MessageBox.Show("Se ha pulsado OtroBotón")
End Sub
End Sub
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
7
7
Programación en Windows (VII)
La instrucción AddHandler, permite asociar un evento a un controlador de
eventos determinado, distinto del procedimiento de evento predeterminado.
eventos determinado, distinto del procedimiento de evento predeterminado.
● Esto permite activar y desactivar los eventos a voluntad.
AddHandler NombreObjeto.NombreEvento, AddressOf NombreControladorDeEventos
AddHandler MiBotón.Click, AddressOf MiEvento
AddHandler MiBotón Leave
AddHandler MiBotón.Leave, AddressOf MiEvento
AddressOf MiEvento
AddHandler OtroBotón.Click, AddressOf MiEvento
…
Private Sub MiEvento(ByVal sender As Object, _
ByVal e As EventArgs) 'No lleva claúsula Handles
(
p
_
MessageBox.Show("Se ha pulsado MiBotón " &
g
"u OtroBotón " & _
"o MiBotón ha perdido el foco")
MessageBox.Show("Se ha pulsado MiBotón " & _
If sender Is MiBotón Then
"o mi botón ha perdido el foco")
Else
End If
End Sub
MessageBox.Show("Se ha pulsado OtroBotón")
La instrucción RemoveHandler permite desactivar un controlador de eventos
La instrucción RemoveHandler, permite desactivar un controlador de eventos.
RemoveHandler NombreObjeto.NombreEvento, AddressOf NombreControladorDeEventos
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
8
8
Aplicaciones Windows Forms
Se desarrolla alrededor de uno o más formularios.
Generación automática de código.
● Visual Studio genera código en tres sitios distintos:
Archivo Application.Designer.vb.
o Uno por proyecto
Uno por proyecto
o Está dentro del directorio My Proyect del proyecto.
o Incluye las características generales de la aplicación y formulario o módulo de
arranque.
Archivo FormX.Designer.vb.
Archivo FormX.Designer.vb.
o Uno por formulario.
o Dentro del directorio de proyecto.
o Implementación parcial de la clase Form.
o Incluye el código necesario para crear y destruir los controles que se incluyan en
y
p
q
y
y
g
Archivo FormX.vb.
el formulario.
o Clase FormX con la declaración del resto de la clase.
o Incluye el código de usuario para manejar la aplicación
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
9
9
Tareas comunes: texto
Propiedad Text.
bti
E t bl
● Establece u obtiene el texto asociado al control.
l
● Presente en todos los controles que tienen texto estático o editable.
● En texto estático, el carácter & se utiliza para determinar la tecla de
i d
l t
t
t
l
acceso.
Propiedad TextAlign.
● Alineación del texto
● Presente en los controles Label, TextBox, Button, CheckBox,
● Para los controles Label, Button, CheckBox y RadioButton puede
RadioButton NumericUpDown y DomainUpDown
RadioButton, NumericUpDown y DomainUpDown.
tomar alguno de los valores de la enumeración ContentAligment.
BottomCenter, BottomLeft, BottomRight, MiddleCenter,
MiddleLeft, MiddleRight, TopCenter , TopLeft, TopRight.
p g
p
g
p
● Para el resto puede tomar alguno de los valores de la enumeración
,
,
,
,
HorizontalAligment.
Center, Left, Right.
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
10
10
Tareas comunes: color
Propiedades ForeColor y BackColor.
● Establece u obtienen el color de primer plano y el color de fondo.
● Su valor es un dato de la estructura System.Drawing.Color.
Miembros de la estructura Color.
● Método estático Color.FromArgb(rojo, verde, azul).
● Método estático Color.FromKnownColor(nombreColorConocido).
● Método estático Color.FromName(cadena).
)
● Propiedades R, G, B.
(
MiBotón.BackColor = Color.FromArgb(0, 0, 255) 'Color de fondo azul
Me.BackColor = Color.FromKnownColor(KnownColor.Yellow) ‘Amarillo
OtroBotón.BackColor = Color.FromName("Green") 'Color de fondo verde
Dim c As System.Drawing.Color = MiBotón.BackColor
MessageBox.Show(c.R & "-" & c.G & "-" & c.B) 'Devuelve 0-0-255
Universidad Pontificia de Salamanca (Campus Madrid)
Luis Rodríguez Baena, Escuela Superior de Ingeniería y Arquitectura, 2010
11
11
Tareas comunes: fuentes
Propiedad Font.
● Hace referencia a un objeto S stem Dra ing Font
● Hace referencia a un objeto System.Drawing.Font.
● En tiempo de ejecución la modificación de las características de la fuente implica la creación
de una nueva instancia de la clase.
'Para cambiar el estilo de la fuente a negrita
'MiBotón Font Bold = True no es válido
MiBotón.Font.Bold True no es válido
MiBotón.Font = New Font(MiBotón.Font, FontStyle.Bold)
● Las fuentes de los componentes de un objeto contenedor, toman las características de los
objetos contenidos.
Propiedades del objeto Font
Propiedad
Bold
Italic
Name
Size
Strikeout
Underline
Unit
Descripción
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 representación del tipo de letra del objeto Font
Obtiene el tamaño del objeto Font
Otiene un valor que indica si
Comentarios de: 7. Diseño de una aplicación Windows Forms en VB.NET (0)
No hay comentarios