Visual Basic.net: Menús y Cuadros de Dialogo (9)

Page 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

1


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

2


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

3


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

4


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

5


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

6


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?: -Copiar un Archivo: - Mover un Archivo:

Exists(nombre del archivo o ruta) Copy(Fichero Origen, Fichero Destino) 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

7


- 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: - Mover una Carpeta:

Copy(Carpeta Origen, Carpeta Destino) Move(Carpeta Origen, Carpeta Destino)

* Destino es Nombre y Ruta de la carpeta copiada. - Renombrar una Carpeta: - Borrar una Carpeta:

Usar un Move en la misma ubicación. 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

8


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

9


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

10


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

11


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

12


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

Lola Cano Gil

13


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.