Visual Basic.net: Menús y Cuadros de Diálogo(9)
description
Transcript of Visual Basic.net: Menús y Cuadros de Diálogo(9)
Lola Cano Gil 1
Menús y Cuadros de Dialogo.
Menús y Cuadros de Dialogo. .......................................................................................... 1
1. Barra de Menús ...................................................................................................... 1
2. Menús Emergentes ............................................................................................... 3
3. Barra de herramientas. ......................................................................................... 4
4. Barra de estado...................................................................................................... 5
5. Cuadros de dialogo. ............................................................................................... 6
1. Barra de Menús
Al cargar MenuStrip aparece el siguiente formato en el Formulario:
Como vemos es un Control oculto, no se define dentro del Formulario
Al hacer Clic sobre el texto | Escriba aquí | en cuanto se empiece a escribir
VB mostrará otras dos casillas con la invitación | Escriba aquí |
Lola Cano Gil 2
Escribir |Nivel-1| fijaros en la ventana de Propiedades. El texto escrito se ha
convertido en un elemento de Menú. Cada elemento de Menú es un Objeto y,
consecuentemente, dispone de un conjunto de propiedades exclusivo.
• El carácter &:
Si escribimos | &Nivel-1 | Visual Basic sustituye este símbolo por un
Subrayado para la letra N convirtiendo este carácter en una tecla aceleradora
o de Acceso directo. Pulsando la combinación de tecla
<Alt-Tecla Aceleradora> equivale a hacer Clic sobre la propia opción de
Menú. Cualquier carácter puede convertirse en tecla de acceso directo.
No debe coincidir el mismo carácter en otra opción de Menú.
• Asignar Combinaciones de Teclas a elementos de Menú:
Para los elementos de Menú que queramos ejecutar con una combinación de
letras, activar la Propiedad ShortcutKeys en el elemento deseado.
• El elemento separador:
El elemento separador es una línea que sirve para separar elementos de Menú
que consideramos relacionados. Para activar el elemento separador
Posicionarse en | Escriba aquí | debajo del que queremos que aparezca
subrayado y pulsar la flecha del Menú desplegable que aparece y seleccionar
Separador.
• Mover y eliminar elementos de los Menús:
Para borrar un elemento, simplemente hacer Clic sobre él con el botón
derecho y ejecutar el comando Eliminar.
Para mover un elemento, arrastrarlo desde su posición actual hasta la
ubicación en la que desee recolocarlo.
• Elementos Activables:
Nos permiten crear elementos de Menú que pueden alternar entre dos estados;
pueden estar seleccionados o no. Se le asocia una Casilla de Verificación.
Se hace activando la propiedad Checked.
Mediante código para alternar la activación o no de Checked, en el elemento
que hemos decidido que sea Activable escribir:
Lola Cano Gil 3
Elemento.Checked = Not (Elemento.Checked)
• Programar los Menús:
Cada elemento de un Menú es un Objeto independiente; podemos seleccionar
cada uno de ellos por separado haciendo Clic sobre ellos y recurriendo a la
ventana Propiedades. La asignación de código se hace igual que con los
controles.
-------------------------------------- ### -----------------------------------------
En tiempo de diseño, podemos activar la flecha de acceso directo a
Propiedades en el diseño del Menú, visualizándose el siguiente cuadro en la
parte derecha del Menú.
2. Menús Emergentes
Los Menús Emergentes también llamados Menús Contextuales, son los
Menús que aparecen cuando hacemos Clic con el Botón Derecho sobre un
Objeto de un Formulario. Los Menús Emergentes se crean con el Control
ContextMenuStrip.
Lola Cano Gil 4
Puede haber varios Menús Emergentes, para que puedan ser ejecutados en un
Objeto, hay que seleccionar el nombre del Menú en la Propiedad
ContextMenuStrip.
En Cuanto al Diseño y al Código Funcionan exactamente igual que Las
Barras de Menú.
En tiempo de Diseño:
En tiempo de Ejecución:
3.
Ba
rra
de
her
ra
mi
ent
as.
Lola Cano Gil 5
Podemos añadir a nuestros programas barras de herramientas, con las opciones del menú
mas usadas, con este control.
La propiedad Ítems tiene la colección, en la que podemos añadir los botones a la barra de
herramientas darles nombre y asignarles una imagen. (propiedades Name e Image de cada
botón).
Se les puede programar como cualquier botón.
Podemos hacer menús desplegables en la barra de herramientas, para ello en lugar de un
botón tendremos que seleccionar la opción DropDownButton
4. Barra de estado.
Barra que muestra información sobre un objeto.
Lola Cano Gil 6
5. Cuadros de dialogo.
• Abrir y Salvar Ficheros.
- Abrir: Control Open File Dialog
Sirve para mostrar un Cuadro de Diálogo que permita al usuario explorar la estructura de
carpetas para seleccionar un Archivo. Es importante reseñar que no suele ser el propio
Open File Dialog el encargado de Abrir el archivo seleccionado, sino código específico
insertado en otro lugar de la aplicación.
- Propiedades a considerar:
OpenFileDialog1.InitialDirectory = “ruta” | …. = “C:\”
Indica que carpeta debe mostrar al Abrir el Cuadro de Diálogo. Si no se especifica una
carpeta concreta para la propiedad InitialDirectory se utilizará la carpeta activa del sistema
(por ejemplo la última carpeta a la que se haya accedido con un cuadro de diálogo Abrir.
OpenFileDialog1.Title = “Seleccione un Fichero… “
Texto que se muestra en la Barra de Título del Cuadro de Diálogo. Si no se especifica
ningún valor, se muestra simplemente el título Abrir.
OpenFileDialog1.FileName = |||||||||||||||||||||||||||||||||||||||||||||||||||||||
Esta propiedad se utiliza para contener el nombre del archivo seleccionado. Si no
asignamos una cadena vacía a esta propiedad antes de abrir el Cuadro de Diálogo,
adquirirá por defecto el nombre del propio Control, que no suele ser en absoluto
conveniente.
Crear Filtros de Archivos:
Para crearlos usamos la propiedad Filter cuyo formato es el siguiente:
Control.Filter = “Descripción | *.extensión | Descripción | *.extensión…….. “
Ejemplo:
Control.Filter = “Windows Bitmaps | *.bmp | JPEG Archivos | *.jpg”
- Mostrar el Cuadro de Diálogo:
Lola Cano Gil 7
Se usa el Método ShowDialog(), funciona de un modo similar al homónimo de los
Formularios .
Ejemplo de uso:
If OpenFileDialog1. ShowDialog() <> Windows.Forms. DialogResult.Cancel Then
Texto.Text = OpenFileDialog1.FileName
Else
Texto.Text = “”
End If
Nota:
Por defecto este control no admite que el usuario introduzca el nombre de un Archivo que
no existe. Pero podemos alterar este comportamiento asignando el valor False a la
propiedad CheckFileExists de este control.
- Salvar: Control Save File Dialog
Este control es similar a Open File Dialog, pero sirve para que el usuario indique qué
Archivo desea Guardar, en lugar de cual Abrir. Es importante destacar que este control no
es realmente quien almacena el Archivo; sólo permite al usuario especificar el nombre con
el que desea guardarlo.
- Propiedades a considerar:
SaveFileDialog1.Title = “Especifique destino del Fichero “
Texto que se muestra en la Barra de Título del Cuadro de Diálogo. Si no se especifica
ningún valor, se muestra simplemente el título Guardar.
SaveFileDialog1.Filter = “Text Files (*.txt) | *.txt”
• Manipular Archivos.
Se realiza Usando el Objeto: System.IO.File
• Métodos para manipular Archivos.
- Existe el Archivo?: Exists(nombre del archivo o ruta)
-Copiar un Archivo: Copy(Fichero Origen, Fichero Destino)
- Mover un Archivo: Move(Fichero Origen, Fichero Destino)
* Destino es Nombre y Ruta del archivo copiado.
- Renombrar un Archivo: Usar un Move en la misma ubicación.
- Borrar un Archivo: Delete(nombre del archivo)
¡!!!!!! CUIDADO QUE BORRA DE VERDAD ¡!!!!!!!!
• Manipular Carpetas.
Se realiza Usando el Objeto: System.IO.Directory
• Métodos para manipular Carpetas.
Lola Cano Gil 8
- Crear una Carpeta: CreateDirectory(nombre de la carpeta o ruta)
Ejemplo: System.IO.Directory.CreateDirectory(“c:\my new directory)
- Existe la Carpeta?: Exists(nombre de la carpeta o ruta)
-Copiar una Carpeta: Copy(Carpeta Origen, Carpeta Destino)
- Mover una Carpeta: Move(Carpeta Origen, Carpeta Destino)
* Destino es Nombre y Ruta de la carpeta copiada.
- Renombrar una Carpeta: Usar un Move en la misma ubicación.
- Borrar una Carpeta: Delete(nombre de la carpeta o ruta)
¡!!!!!! CUIDADO QUE BORRA DE VERDAD ¡!!!!!!!!
- Para enviar una carpeta a la Papelera de reciclaje en lugar de Eliminarla.
Podemos utilizar el Objeto My, como en este ejemplo.
My.Computer.FileSystem.DeleteDirectory(nombre directorio o ruta,
FileIO.UIOption.AllDialogs, [ic:cc]
FileIO.RecicleOption.SendToRecycleBin,
FileIO.UICancelOption.ThrowException)
Ejercicio: Block de notas
Lola Cano Gil 9
Public Class Form1
Dim nombre As String 'PARA GUARDAR EL NOMBRE DEL ARCHIVO
Private Sub imprimirdoc_PrintPage(ByVal sender As System.Object,
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles
imprimirdoc.PrintPage
Dim cadena_imprimir As String
Dim pincel As New System.Drawing.SolidBrush(block.ForeColor)
cadena_imprimir = block.Text
e.Graphics.PageUnit = GraphicsUnit.Millimeter
e.Graphics.DrawString(cadena_imprimir, block.Font, pincel, 10,
20)
End Sub
Private Sub babrir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles babrir.Click
'abrir archivo y pasarlo a la caja de texto
Dim longitud As Integer 'GUARDA LA LONGITUD DEL ARCHIVO
If abrir.ShowDialog() = Windows.Forms.DialogResult.OK Then
longitud = FileLen(abrir.FileName)
Dim contenido As New String("", longitud)
Dim ObjetoFichero As New
System.IO.StreamReader(abrir.FileName)
contenido = ObjetoFichero.ReadToEnd
nombre = abrir.FileName
Me.Text = nombre
ObjetoFichero.Close() 'cierra archivo
ObjetoFichero.Dispose() ' libera recursos del sistema
'
block.Text = contenido
barraestado.Text = abrir.FileName 'poner el nombre del
archivo en la barra de estado
End If
End Sub
Private Sub bguardar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bguardar.Click
If nombre = "" Then 'caso de guardar un nuevo
nombre = Mid(block.Text, 1, 10) 'poner el nombre con los diez
primeros caracteres
If guardar.ShowDialog() = Windows.Forms.DialogResult.OK Then
nombre = guardar.FileName
Else ' caso de salir sin guardar
nombre = ""
Exit Sub
End If
End If
Dim ObjetoFichero As New System.IO.StreamWriter(nombre)
ObjetoFichero.Write(block.Text)
ObjetoFichero.Close() 'cierra archivo
ObjetoFichero.Dispose() ' libera recursos del sistema
End Sub
Lola Cano Gil 10
Private Sub bvistapre_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bvistapre.Click
If previa.ShowDialog() = Windows.Forms.DialogResult.OK Then
imprimirdoc.PrinterSettings.PrinterName =
imprimir.PrinterSettings.PrinterName
imprimirdoc.Print()
End If
End Sub
Private Sub bimprimir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bimprimir.Click
If imprimir.ShowDialog() = Windows.Forms.DialogResult.OK Then
imprimirdoc.PrinterSettings.PrinterName =
imprimir.PrinterSettings.PrinterName
imprimirdoc.Print()
End If
End Sub
Private Sub bcolor_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bcolor.Click
If Color.ShowDialog() = Windows.Forms.DialogResult.OK Then
block.ForeColor = Color.Color
End If
End Sub
Private Sub bfuentes_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bfuentes.Click
If fuente.ShowDialog() = Windows.Forms.DialogResult.OK Then
block.Font = fuente.Font
End If
End Sub
Private Sub bcortar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bcortar.Click
If block.SelectionLength > 0 Then
block.Cut() 'cortar texto seleccionado
End If
End Sub
Private Sub bdeshacer_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bdeshacer.Click
If block.CanUndo Then '¿puede deshacer?
block.Undo()
Else
MsgBox("NO se puede deshacer")
End If
End Sub
Private Sub bpegar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bpegar.Click
block.Paste()
End Sub
Private Sub bcopiar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles bcopiar.Click
If block.SelectionLength = 0 Then
block.SelectAll()
End If
block.Copy()
End Sub
Lola Cano Gil 11
Private Sub AbrirToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AbrirToolStripMenuItem.Click
'abrir archivo y pasarlo a la caja de texto
Dim longitud As Integer 'GUARDA LA LONGITUD DEL ARCHIVO
If abrir.ShowDialog() = Windows.Forms.DialogResult.OK Then
longitud = FileLen(abrir.FileName)
Dim contenido As New String("", longitud)
Dim ObjetoFichero As New
System.IO.StreamReader(abrir.FileName)
contenido = ObjetoFichero.ReadToEnd
nombre = abrir.FileName
Me.Text = nombre
ObjetoFichero.Close()
ObjetoFichero.Dispose()
block.Text = contenido
guardar.FileName = nombre 'para que al guardar tenga el
nombre
barraestado.Text = "modificando ......" & abrir.FileName
'poner el nombre del archivo en la barra de estado
End If
End Sub
Private Sub GuardarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
GuardarToolStripMenuItem.Click
If nombre = "" Then 'caso de guardar un nuevo
nombre = Mid(block.Text, 1, 10) 'poner el nombre con los diez
primeros caracteres
If guardar.ShowDialog() = Windows.Forms.DialogResult.OK Then
nombre = guardar.FileName
Else ' caso de salir sin guardar
nombre = ""
Exit Sub
End If
End If
Dim ObjetoFichero As New System.IO.StreamWriter(nombre)
ObjetoFichero.Write(block.Text)
ObjetoFichero.Close() 'cierra archivo
ObjetoFichero.Dispose() ' libera recursos del sistema
End Sub
Private Sub SalirToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
SalirToolStripMenuItem.Click
Me.Close()
End Sub
Private Sub GuardarComoToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
GuardarComoToolStripMenuItem.Click
If guardar.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim ObjetoFichero As New
System.IO.StreamWriter(guardar.FileName)
nombre = guardar.FileName
ObjetoFichero.Write(block.Text)
ObjetoFichero.Close() 'cierra archivo
ObjetoFichero.Dispose() ' libera recursos del sistema
End If
End Sub
Lola Cano Gil 12
Private Sub ImprimirToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ImprimirToolStripMenuItem.Click
If imprimir.ShowDialog() = Windows.Forms.DialogResult.OK Then
imprimirdoc.PrinterSettings.PrinterName =
imprimir.PrinterSettings.PrinterName
imprimirdoc.Print()
End If
End Sub
Private Sub VistaPreviaToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
VistaPreviaToolStripMenuItem.Click
If previa.ShowDialog() = Windows.Forms.DialogResult.OK Then
imprimirdoc.PrinterSettings.PrinterName =
imprimir.PrinterSettings.PrinterName
imprimirdoc.Print()
End If
End Sub
Private Sub PegarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PegarToolStripMenuItem.Click
block.Paste()
End Sub
Private Sub CortarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
CortarToolStripMenuItem.Click
If block.SelectionLength > 0 Then
block.Cut() 'cortar texto seleccionado
End If
End Sub
Private Sub CopiarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
CopiarToolStripMenuItem.Click
If block.SelectionLength = 0 Then
block.SelectAll()
End If
block.Copy()
End Sub
Private Sub CambiarcolorToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
CambiarcolorToolStripMenuItem.Click
If Color.ShowDialog() = Windows.Forms.DialogResult.OK Then
block.ForeColor = Color.Color
End If
End Sub
Private Sub FuenteToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
FuenteToolStripMenuItem.Click
If fuente.ShowDialog() = Windows.Forms.DialogResult.OK Then
block.Font = fuente.Font
End If
End Sub
Private Sub DeshacerToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
DeshacerToolStripMenuItem.Click
If block.CanUndo Then
block.Undo()
Lola Cano Gil 13
Else
MsgBox("NO se puede deshacer")
End If
End Sub
End Class
Añadir la opción de : Nuevo
Private Sub nuevo_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles nuevo.Click
Dim mensaje As Integer
' en el caso de que pulse "Nuevo" pero tenga abierto otro archivo
If block.Text <> "" Then
mensaje = MessageBox.Show("¿Deseas guardar los datos?", "El
texto ha cambiado", MessageBoxButtons.YesNoCancel)
If mensaje = 6 Then 'Guardar como
If guardar.ShowDialog() = Windows.Forms.DialogResult.OK
Then
Dim ObjetoFichero As New
System.IO.StreamWriter(guardar.FileName)
nombre = guardar.FileName
ObjetoFichero.Write(block.Text)
ObjetoFichero.Close() 'cierra archivo
ObjetoFichero.Dispose() ' libera recursos del sistema
End If
End If
Exit Sub
End If
' el caso de Nuevo- nuevo
nombre = ""
block.Text = ""
End Sub
Ampliación
Añadir la opción de ayuda: Private Sub AyudaToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles AyudaToolStripMenuItem.Click
Help.ShowHelp(Me, "..\help\ayuda.chm")
End Sub Programar menú emergente sobre la caja de texto de Cortar, Copiar y Pegar.
Private Sub CopiarToolStripMenuItem1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles CopiarToolStripMenuItem1.Click
If block.SelectionLength = 0 Then
block.SelectAll()
End If
block.Copy()
End Sub
Programar una ventana acerca de…. Private Sub AcercaDeToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AcercaDeToolStripMenuItem.Click
AboutBox1.Show()
End Sub