jesuli | Fecha: Jueves, 2009-12-31, 1:00 PM | Mensaje # 1 |
Teniente
Grupo: Administradores
Mensajes: 77
Estatus: Offline
| Crear un icono para nuestra aplicación en la bandeja del sistema. Este tutorial voy a mostrar como crear un icono para nuestro programa y se muestre este icono en la bandeja de sistema. Usando el control NotifyIcon, en c#.
NotifyIcon es una función interesante para agregarle a tu aplicación, y se puede ver numerosos ejemplos de el uso de esta función, por ejemplo, si mira en la bandeja de sistema donde esta el reloj vera numeroso icono pequeño que usa esta función de NotifyIcon .
Anterior mente agregar esta característica a nuestro programa usando la api de win32. era todos muy complicado, por suerte c#, como siempre no hacer la vida mas fácil. gracia a este control implementa esta característica en nuestro programa es un juego de niño, veremos los fácil que es agregar esta función interesante de NotifyIcon a nuestro programa.
el objetivo de este tutorial cubrirá los siguiente
-mostrar cómo crear un icono en la bandeja de sistema. -mostrar el icono en la bandeja de sistema cuando se minimizar la ventana de nuestra aplicación. -Cómo agregar un menú contextual para el icono de la bandeja de sistema
|
Muestra el icono en la bandeja de sistema a minimizar el programa en el paso anterior vemos echo implementa la característica de NotifyIcon a nuestro programa. Ahora vamos a hacer, que cuando se pulse en el botón minimizar, el programa se minimiza en la bandeja de sistema, y que aparezca el icono, y que cuando se haga doble clic, en el icono, nuestro programa vuelva a su estado normal, y el icono se eliminar de la bandeja de sistema.
Veamos cómo hacer esto. Con el control seleccionado en su propiedades buscar visible y ponerlo a false
Con esto hacemos que nada mas ejecutar nuestro programa el icono no aparezca en la bandeja de sistema.
Ahora selecciona el "Form1”, y en sus propiedades haga clic en el símbolo del rayo para acceder a los eventos, y haga doble clic en el evento llamado "Resize”
Con esto se abrirá el editor de código llevándote a eventos recién creado y introduce el siguiente código.
if (this.WindowState == FormWindowState.Minimized) { Hide(); notifyIcon1.Visible = true; } Con el código anterior los que hacemos es que cuando la ventana reciba un cambio de tamaño, se ejecute el código que hace oculta la ventana de programa en la barra de tarea, y posteriormente hacer visible el icono en la barra de tarea. El código de eventos resize debe de tenerlo ahora asi.
private void Form1_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { Hide(); notifyIcon1.Visible = true; } } si compilamos el programa ahora veremos que la ventana de programa se oculta en la barra de tarea y aparece el icono de programa. Sin embargo si hacemos click en el icono de programa la ventana de programa no se restaura ahora lo vamos a soluciona.
Vuelve a a modo diseño y selecciona el control NotifyIcon1 en el formulario y dale dos click seguido los que se abrirá el editor de código con el eventos MouseDoubleClick de control NotifyIcon1
Introduce el siguiente código
Show(); this.WindowState = FormWindowState.Normal; notifyIcon1.Visible = false; Con esto hacemos que cuando se pulse dos veces seguido en el icono de programa la ventana se restaurara a su forma normal y ocultamos el icono de programa quitandolo de la barra de tarea. Ahora el código de eventos los deber de tener de esta manera private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { Show(); this.WindowState = FormWindowState.Normal; notifyIcon1.Visible = false; }
Añadir un menú contextual para el icono de la bandeja Añadir un menú contextual a icono de la bandeja de sistema es muy fácil como vamos a vez el menú contextual solo va a tener un solo elemento en su lista que será "Cerrar programa”
vamos a vez como añadir un menú contextual en la barra de herramienta selecciona el control llamado "ContextMenuStrip” y arrastrarlo a formulario y el control aparecerá a lado de control NotifyIcon1 ahora borra la palabra "escriba aquí” y en su lugar escribe "Cerrar programa” sin la comilla.
Con esta operación vemos añadido un elemento a menús contextual selecciona el elemento que vemos creado es decir "Cerrar programa” y dale dos clicK seguido con esto se abrirá el editor de código con el eventos salirToolStripMenuItem_Click(object sender, EventArgs e)
Anadir el siguiente código en el evento
Close();
Con esto hacemos que cuando demo clicK a menú contextual de elemento "Cerrar programa” el programa se cierre. Ahora el código de eventos de salirToolStripMenuItem_Click(object sender, EventArgs e) Deber de tenerlo de esta manera
private void salirToolStripMenuItem_Click(object sender, EventArgs e) { Close(); }
Tenemos el menú contextual creado con un solo elemento llamado "Cerrar programa” y un evento asociado a ese elemento de menú para que el menú contextual aparezca cuando se de clicK con el botón derecho de ratón a icono de programa en la bandeja de sistema necesitamos asocial el menú contextual con el icono de la bandeja de sistema para ello asociaremos el menú contextual de control ContextMenuStrip1 con el control NotifyIcon1 de la siguiente manera
Seleccionamos el control NotifyIcon1 y en sus propiedades buscamos contextMenuStrip y en la lista seleccionamos el control contextMenuStrip1. Con esto vemos asociado el menú contextual con el icono de la bandeja de sistema de programa
Ahora compilar y ejecuta el programa minimizar la ventana de programa en la bandeja de sistema y cuando aparezca el icono de programa en la bandeja hacer click con el botón derecho de ratón y aparecerá el menú contextual con un solo elemento llamado cerrar programa si le damos clicK a cerrar programa el programa se cierras.
Fin de tutorial, espero que sea de utilidad para aquello que quiera implementa la característica de NotifyIcon. ya que le da un toque mas interesante, y sobre todos mas comodidad a usuario final, que usara nuestro programa, ya que ahorraría espacio en el escritorio de sistema.
|
[center][/center] http://www.codigocero.ucoz.es
|
|
| |