Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Cod. 1728.61 PLATAFORMA .NET Y SERVICIOS WEB Diseño de Interfaces y Menús Ana Belén Martínez Prieto belen@lsi.uniovi.es Dpto. de Informática OOTLab - Laboratorio de Tecnologías de Orientación a Objetos http://www.ootlab.uniovi.es Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Conceptos Básicos Window – Control – Form La clase Control La clase Form Aplicaciones con Interfaces Gráficas de Usuario Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Conceptos Básicos Sistema Operativo Windows No es orientado a objetos Elemento fundamental: Ventana Lenguaje Interfaz C C++ Windows Application Programming Interface (API) Microsoft Foundation Class (MFC) Library C# o C++ Windows Forms (parte del framework .NET) Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Conceptos Básicos (II) • Framework .net – Colección de clases que proporciona la funcionalidad necesaria para la construcción de No da soporte multimedia aplicaciones Web, Internet y Windows. ✤ • Windows Forms – Librería de clases que permite la creación de aplicaciones Windows tradicionales. – Es independiente de los lenguajes Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Window – Control - Form Implementa la funcionalidad System .Object Gestiona la generación y el que es requerida por las básica display de las barras de clases que muestran desplazamiento para permitir al al usuario (teclado, información usuario tener acceso aratón, la mensajes de windows) totalidad de la pantalla Gestiona la funcionalidad Control por un control para requerida actuar como un contenedor de otros controles. TextBoxBase ScrollableControl .... Es empleada para crear cualquier clase de ventanas: estándar, cuadros de diálogo, MDI ContainerControl RichTextBox ... Button Base Button Panel CheckBox TextBox RadioButton Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Form UserControl Diseño de Interfaces y Menús Ana Belén Martínez Prieto La clase Control • Implementa la funcionalidad básica para las clases que muestran información al usuario. – Métodos y propiedades • Color, Position, Size, Controls, CanFocus, Parent, TabStop,... – Funcionalidad añadida • ‘Docking’ y ‘Anchoring’ • Gestión de controles hijos – No implementa el ‘paint’ • Representa la clase base para las clases predefinidas – Es la clase base indirecta para los controles de usuario (UserControl) Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto La clase Form • Diferentes tipos de ventanas: – Estándar – Diálogos – MDI • Atributos especiales – – – – – MaximizeBox y MinimizeBox DesktopLocation AcceptButton y CancelButton ShowDialog() Eventos • • • Load Closed y Closing Activated Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto La clase Form. Propiedades – Localización y Tamaño DesktopLocation.X<Location.X DesktopLocation.Y<Location.Y Propiedad Tipo Descripción Location Point Relativa a la pantalla Size Size Tamaño completo de la form Bounds Rectangle Igual a Rectangle (Location,Size) Width Int Igual a Size.Width Height Int Igual a Size.Height Left Int Igual a Location.X Top Int Igual a Location.Y Right Int Igual a Location.X+Size.Width Bottom Int Igual a Location.Y+Size.Height DesktopLocation Point Igual a Location pero incluye barra tareas DesktopBounds Rectangle Igual a Bounds pero incluye barra tareas Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto La clase Form. Propiedades (II) – Área Cliente de una Form excluye –Barra de Título –Borde –Menú –Barra de desplazamiento ClientSize – ClientSize (Size) proporciona la anchura y altura en pixels del área cliente Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto La clase Form. Propiedades (III) • StartPosition. – Asigna la posición inicial de la ficha en tiempo de ejecución – CenterScreen, Manual, CenterParent,... • TopMost. – Indica si la ficha debería ser mostrada como la ficha más destacada de la aplicación • TopLevel. – Indica si la form es considerada como una ventana de alto nivel (MDI). Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Creación de Ventanas Construcción de la aplicación Requerimientos Incorporación de controles a la Ventana Diálogos Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Form frm Creación de Ventanas = new Form(); frm.Text = “Caption”; frm.Show(); – Form • Crear una instancia • Llamar el método – Show (no modal) – ShowDialog (modal) • Usar propiedades y métodos Form frm = new Form(); frm.Text = “Caption”; frm.FormBorderStyle = FormBorderStyle.FixedDialog; frm.MinimizeBox = false; frm.MaximizeBox = false; frm.ShowDialog(); Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Aplicaciones basadas en IGU Emplea SYSTEM.WINDOWS.FORMS.DLL La función Main() es el punto de entrada El método Run de la clase Application abre la form principal. • public Clase Form por el usuario para la ventana staticdefinida void Main() { principal • • • Form frm = new Form(); –frm Redefine .Text = OnPaint “Caption”; .FormBorderStyle = para FormBorderStyle –frm Redefine otros eventos el manejo de.FixedDialog la entrada ; Frm.MinimizeBox = false; frm.MaximizeBox = false; Application.Run(frm); } Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Requerimientos de Usuario • Para compilar – Compilador C# • Para ejecutar – Runtime .NET (CLR, Common Language Runtime) Herramientas • • • Microsoft .NET Framework SDK Microsoft Visual C# Microsoft Visual Studio .NET Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO - C++ - C# -Visual Basic Diseño de Interfaces y Menús Ana Belén Martínez Prieto Incorporando controles a la Ventana • 1.- Crear la instancia del control • 2.- Asignar los atributos al control (Text, BackColor,...) • 3.- Asignar la localización y dimensiones del control • 4.- Añadir manejadores de eventos para el control • 5.- Añadir el control a la colección de controles de la form. Private TextBox txt; TextBox txt = new TextBox(); Txt.Text=“Ejemplo”; frm.Controls.Add(txt); Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Diálogos • Un diálogo es una ventana con una gestión de mensajes especial. • Un diálogo modal impide las entradas de teclado y de ratón para todas las ventanas excepto la ventana del diálogo. • En .NET se emplea el método ShowDialog() para abrir una form como un diálogo. Form frm = new Form(); • frm ShowDialog () devuelve un valor DialogResult que .Text = “Caption ”; frm .FormBorderStyle = FormBorderStyle .FixedDialog; representa el resultado . frm.MinimizeBox = false; frm.MaximizeBox = false; frm.ShowDialog(); Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Diálogos (II) •Valores de Retorno • DialogResult únicamente informa de que botón ha cerrado la form, de forma que se deben leer los valores desde los controles. DialogResult Descripción Abort Devuelve Abort Cancel Devuelve Cancel Ignore Devuelve Ignore No Devuelve No None No devuelve nada. Significa que aún está ejecutándose OK Devuelve OK Retry Devuelve Retry Yes Devuelve Yes Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Diálogos (III) • MessageBox • Este diálogo está encapsulado en OkCancel la clase MessageBox y es abierto por su método Show(). YesNoCancel YesNo... DialogResult dr = MessagBox.Show(“Introduzca valor:” ,”Título” ,MessageBoxButtons.OkCancel ,MessageBoxIcon.Hand) if (dr==DialogResult.OK) { // lo que sea Hand } Stop Error Question Exclamation Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Layout • Cambiar la posición y dimensiones de los controles en tiempo de ejecución – Posibilidad: Calcular y mover – .NET: Anchoring y Docking • Anchor – Distancia fijada a los bordes • Dock – Conexión a un borde • Splitter Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Anchoring • Cuando un control es ‘anclado’ (‘anchoring’) a una ficha (o a otro contenedor), si la form es redimensionada, el control mantiene la distancia entre el control y las posiciones ancladas. • En definitiva, fija la distancia a los bordes del contenedor AnchorStyleValues • Propiedad: Anchor. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Docking • Consiste en acoplar un control con dos bordes del contenedor, de forma que el control se redimensiona cuando el contenedor es redimensionado. • Propiedad: Dock AnchorStyleValues • Un caso especial es DockStyle.Fill. Acopla el control con todos los bordes. El control llena el área cliente del contenedor. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Splitter • Permite que el usuario redimensione elementos acoplados (docked) en tiempo de ejecución. • Para usar un Splitter • - Acoplar un control contra el borde de un contenedor • - Acoplar el Splitter contra el mismo borde Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Botones Button Base Button CheckBox RadioButton Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Botones de comando – La clase Button representa un ‘push button’ o botón de comando (tradicional). – Funciones básicas son implementadas en la clase control. – Propiedad : DialogResult Si se asigna esta propiedad a un valor distinto de DialogResult.None, ShowDialog() devuelve este valor si se hace click en el botón Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Botones de Chequeo • • • • • • Soportan on/off para opciones que son no exclusivas Se aconseja emplear mnemotécnicos en las etiquetas Capitalización de sentencias cuando haya más de una palabra. Se aconseja una única línea de texto Si hay un gran número de opciones o éste varia conviene emplear un list box de selección múltiple Emplear la apariencia mixta cuando los valores para esa propiedad difieren Posibles usos – Filtrar el contenido de una lista Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Botones de chequeo – Propiedad : Checked y Appearance – Para que tome un tercer valor (indeterminado): – ThreeState->True – CheckState (examinar el estado) CheckState Descripción Checked CheckBox muestra una marca Eventos: Unchecked CheckBox está vacio CheckBox muestra marcade peroChecked sombreada •Indeterminate CheckedChanged, cambia eluna valor •CheckStatedChanged, cambia el valor de CheckState Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Botones de Opción o de Radio • Representan una opción simple dentro de un conjunto limitado de opciones mutuamente exclusivas • Debe evitar usarse para desencadenar una acción. • 2>= número opciones<=7 • Se aconseja emplear mnemotécnicos en las etiquetas asociadas a los botones • Capitalización de sentencias • Agrupamiento mediante un Group Box • Posibles usos: – Representar un conjunto de opciones para una propiedad Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Botones de Radio – Sólo admite valores on/off. – Propiedad: Checked. – No hay propiedad ThreeState. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Etiquetas – Se utilizan para mostrar información de sólo lectura (texto o imágenes) – No pueden recibir el foco – Se emplean para proporcionar texto descriptivo para otros controles. Incluir : – Propiedad: UseMnemonic Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto ToolTips – Ventana pequeña que muestra información útil cuando el puntero del ratón está sobre un control concreto – Se debe definir un ToolTip para cada ventana (siempre que existan controles distintos de ToolBar y StatusBar ya que estos tienen sus propios tooltips). – Propiedades • AutomaticDelay • InitialDelay, tiempo hasta que aparece el tooltip • ReshowDelay ToolTip tp = new ToolTip(); • AutoPopDelay, tiempo que permanece tp.SetToolTip(button1, “Guardar”mostrado ); Tp.SetToolTip(button2,”Salir”); Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Controles de Texto TextBoxBase RichTextBox -Lines -SelectionStart -SelectionLength -SelectedText -AcceptsTab -Modified -AppendText -Clear -ClearUndo -Select -SelectAll TextBox Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto TextBoxBase • Permiten introducir, mostrar o editar un texto. Algunos de estos text fields combinan campos de introducción de texto con otro tipo de controles • Deben emplearse etiquetas para clarificar el campo de texto. Estas etiquetas seguirán la capitalización de sentencias y permitirán el empleo de teclas de acceso • Cuando en el campo de texto se tenga que introducir un conjunto restringido de valores hay que validar la entrada del usuario inmediatamente, ignorando los caracteres inapropiados o indicando que el valor es inválido Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto TextBox • Es un control rectangular donde el usuario introduce o edita texto • Soporta una o varias líneas de texto – Multiline->True • Puede emplearse para mostrar texto de sólo lectura que no es editable pero si seleccionable. – ReadOnly->True • Se puede limitar el número de caracteres a introducir – MaxLength->45 • Se puede soportar la auto-salida, pero con cuidado porque puede sorprender al usuario • El formateo afecta a todo el documento Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto TextBox (II) • Ofrece algunas otras propiedades interesantes: – AcceptReturn. Indica si al presionar ENTER en un TextBox multilínea se crea una nueva línea o bien se activa el botón por defecto de la form. – AcceptTabs. Indica si va a funcionar el TAB dentro del TextBox. – CharacterCasing. Si modifica los caracteres para ponerlos en mayúsculas, minúsculas,... – PasswordChar. Asigna el carácter usado para enmascarar una password en un TextBox simple. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto RichTextBox • Permite al usuario introducir y editar texto proporcionando características más avanzadas para dar formato al documento que el TextBox. – SelectionFont, SelectionColor, SelectionAlignment, Selection Indent – OnSelectionChange • El texto puede ser asignado directamente al control o puede ser cargado desde un fichero de texto o RTF. • El formateo del texto puede aplicarse a un carácter o a un párrafo. • Propiedades específicas: • AutoWordSelection. Indica si se permite la selección automática de palabras. • DetectUrls, indica si el RichTextBox formateará automáticamente una URL cuando se teclee dentro del control. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Listas • Es un control que muestra una lista de opciones para el usuario y soporta la selección de un ítem o varios de la lista • Apropiado para mostrar un gran número de opciones que varían en número y contenido • Si una opción no está disponible hay que quitarla de la lista • Ordenar adecuadamente las opciones de la lista Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Listas (II) • No llevan incorporadas sus propias etiquetas • Asociar una etiqueta – permite acceso por teclado al control – con capitalización de sentencias – que debe aparecer en estado no disponible si el listbox está deshabilitado • Se clasifican atendiendo a cómo muestran la lista y a cómo permiten la selección Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Listas Simples – ListBox – Combo Boxes – CheckedListBoxes – OwnerDrawMode Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto ListBox textBox1.Text=(String)listBox1.Items[listBox1.SelectedIndex]; – Representa una lista de Items – Permite selección • Simple. SelectedItem (-1 = no hay ninguno seleccionado) • Múltiple – – MultiSimple, ítems no consecutivos MultiExtended, rango de ítems – Tres colecciones: • Items • SelectedItems • SelectedIndices – Eventos • SelectIndexChanged • SelectValueChanged – 3>= número de ítems visibles<=8 Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto ComboBox – – – ComboBox=ListBox+TextBox Propiedades y funciones de ambos tipos Eventos • • • OnTextChanged -> recorre ítems o escribe en el campo de edición OnSelectIndexChanged -> recorre los ítems OnSelectionChangeCommitted -> cerrar la lista DropDownStyle Editable Lista Simple SI Visible DropDown SI Plegada DropDownList NO Plegada Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto CheckedListBoxes – Derivado de un ListBox – Cada ítem de la lista es un CheckBox. – CheckedListBox ofrece métodos y propiedades para trabajar con estos checkboxes. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto OwnerDrawMode • Un ListBox puede presentar también otros ítems (no texto) • Para ello: – Asignar la propiedad DrawMode • OwnerDrawVariable (ítems pueden tener diferentes alturas) • OwnerDrawFixed (ítems la misma altura) – Redefinir los métodos • OnMeasureItem, determina la atura de los ítems • OnDrawItem, dibuja un ítem. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Listas Complejas – TreeView – ListView – ImageList Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto ListView • Un ListView puede mostrar datos de cuatro formas: – – – – List Small Icons Details • Cada ítem muestra un título y una imagen. • La clase ListView utiliza la clase ListViewItem para almacenar los valores de los ítems y colecciones: – – – – – – ListView.ListViewItemCollection ListView.SelectedIndexCollection ListView.SelectedListViewItemCollection ListView.CheckedIndexCollection ListView.CheckedListViewItemCollection ListView.ColubmnHeaderCollection Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto TreeView – Muestra una lista jerárquica de ítems o nodos. – Cada nodo incluye • • • Un título Una imagen (opcional) Si tiene sub-nodos se pueden expandir o esconder (collapse). – Los valores de un TreeView son almacenados en objetos TreeNode. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto ImageList – Es un contenedor para imágenes. – Componente invisible que almacena imágenes para otros controles – Hay que incorporar las imágenes a la lista y asignar posteriormente a los ítems el índice de la imagen que les corresponde. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Menus • Se constituyen mediante una jerarquía de clases: – Clase base abstracta Menu – Clase MenuItem para ítems simples – Clase MainMenu para los menús principales – Clase ContextMenu para los menús contextuales Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto MenuItem – La clase MenuItem es la clase más relevante. – Actúa como un elemento de menú simple, aunque puede contener subítems (representados por MenuItems). – Eventos • Onclick • Popup, permite hacer tareas antes de que el menú sea mostrado. • Select, permite hacer tareas mientras el usuario coloca el cursor sobre un MenuItem. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto MenuItem (II) Valor Descripción Checked Aparece √ Enabled Indica si está activo Mnemonic Indica el nemotécnico asociado con este ShortCut Combinación de teclas de acceso rápido asociada ShowShortCut Si muestra o no los ShortCut RadioCheck Indica si muestra un radio botón en vez de una marca de chequeo MdiList Indica si mostrará la lista de las ventanas hijas en el caso de una aplicación MDI. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Menus - ContextMenu – La clase ContexMenu representa los menús que aparecen cuando el usuario pulsa el botón derecho del ratón sobre un control. – Controles tienen una propiedad ContextMenu a la que se puede asociar esta clase de menús. – Eventos: • ContextMenuChanged, si la propiedad ContextMenu está asignada • MenuStart, cuando se hace click sobre un elemento de menú. • MenuComplete, se genera cuando todos los menús están cerrados Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Barras de Estados y de Herramientas • Cuando el usuario interacciona con controles que reflejan propiedades en una barra de herramientas o barra de estados cualquier cambio es directamente aplicado a la selección actual (sin confirmación), excepto si el control requiere una entrada adicional del usuario • Los controles que aparecen en una barra de herramientas o de estados y no llevan etiqueta deben proporcionar tooltips • Las barras de herramientas y de estados deben ser configurables para dar mayor flexibilidad al usuario – visualizarlas y ocultarlas – ordenar y organizar los elementos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Barras de Estados – Una barra de estados (StatusBar) puede ser dividida en partes para mostrar más de un tipo de información. – El framework .NET ofrece el control StatusBar para la barra de estados y el control StatusBarPanel para los paneles individuales. • Panels – Size – Alignment – Text • ShowPanels->True Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Barras de Herramientas • 2 classes: ToolBar + ToolBarButton • Botones con diferentes estilos – Soporta menús Dropdown – Soporta botones de conmutación (toggle) • Eventos – ButtonClick + ButtonDropDown Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Barras de Herramientas (II) • Cada botón puede tener su propia apariencia. Valor Descripción DropDownButton Botón que muestra un menú u otra ventana al presionarlo PushButton Botón tradicional Separator Separación entre botones ToggleButton Botón de conmutación • Las imágenes son almacenadas en un ImageList • Para asignar un tooltip para un botón: • ShowToolTips -> true • ToolTipText-> escribir el texto Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Barras de Herramientas (III) • Si el estilo es DropDownButton • Asignar la propiedad DropDownMenu • Asignar la propiedad DropDownArrows • Al hacer click en un botón se genera un evento ButtonClick pero es un evento de la barra. • El evento ButtonDropDown se produce cuando se presiona la flecha. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Diálogos Comunes – Windows ofrece algunos diálogos comunes. – El framework .NET encapsula esta funcionalidad en algunas clases. – En la base está la clase abstracta CommonDialog. Clase Descripción ColorDialog Muestra la lista de colores posibles FontDialog Muestra la lista de fuentes instalados en el sistema PageSetupDialog Permite seleccionar márgenes y orientación de la página PrintDialog Selección de la impresora y la parte del documento a imprimir FileDialog Selección de un fichero. Base para OpenFileDialog y SaveFileDialog Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Diálogos Comunes – Se muestran con el método ShowDialog(). – OpenFileDialog • Método OpenFile, abre el fichero seleccionado por el usuario (Lectura) – FontDialog • Genera el evento Apply cuando al presionar el botón Apply. Se puede utilizar para un preview con la letra seleccionada. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Contenidos Introducción Aplicaciones con Interfaces Gráficas de Usuario Controles Layout Botones Controles de Texto (Text Controls) Controles de Lista (List Controls) Menús Barras de Estados y Herramientas Diálogos Comunes Otros Controles Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Tabcontrols y TabPages – Permite definir múltiples páginas (TabPages) para una misma ventana o cuadro de diálogo. – Cada página contiene un grupo de controles que la aplicación muestra cuando el usuario selecciona la pestaña correspondiente. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Tabcontrols y TabPages (II) • Las etiquetas del Tab pueden incluir texto, información gráfica o ambas • Si lleva texto: capitalización de sentencias • Si lleva sólo gráfico: emplear tooltips • Un control Tab (por defecto) sólo muestra una fila de tabs y aunque permite múltiples filas hay que evitarlo porque hace más difícil acceder a un tab particular. • Se puede colocar el foco sobre un control particular de la página, pero si no hay un control apropiado se puede dejar en el propio tab Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Otros Contoles – PictureBox: • Representa un control que permite visualizar una imagen (bitmap, icon, JPEG, GIF,...) – Timer: • Implementa un temporizador que genera un evento para intervalos de tiempo definidos por el usuario. • Debe ser empleado en una ventana. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Otros Contoles (II) – ScrollBar: • Implementa la funcionalidad básica de una barra de desplazamiento. – Value – Minimum (0), Maximum(100) – SmallChange(1), LargeChange(10) – TrackBar: • Es similar al ScrollBar pero tiene una interfaz de usuario diferente. Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Otros Contoles (III) – NumericUpDown: • Representa un control que muestra valores numéricos. – Value – Minimum y Maximum – Increment – Eventos: ValueChanged – DomainUpDown: – Igual al anterior pero con Strings – ProgressBar: • Representa una barra de progreso Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Otros Contoles (IV) – LinkLabel: • Control que puede mostrar hiperenlaces – MonthCalendar: • Control que encapsula el calendario por meses de Windows. – DateTimePicker: • Control que permite seleccionar la fecha y hora Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto Ejemplos Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO Diseño de Interfaces y Menús Ana Belén Martínez Prieto