visual basic.net: menús y cuadros de diálogo(9)

13
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í |

Upload: lola-cano

Post on 02-Apr-2015

1.333 views

Category:

Documents


0 download

DESCRIPTION

Menús y Cuadros de Dialogo.

TRANSCRIPT

Page 1: 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í |

Page 2: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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:

Page 3: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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.

Page 4: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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.

Page 5: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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.

Page 6: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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:

Page 7: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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.

Page 8: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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

Page 9: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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

Page 10: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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

Page 11: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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

Page 12: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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()

Page 13: Visual Basic.net: Menús y Cuadros de Diálogo(9)

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