HOWTO:Mostrar un ícono en la System Tray /Show Icon in the System Tray
HowTo, Tips, VB.NET, .NET No Comments » Add to Del.icio.usHace unos días un alumno me preguntó: cómo hago para ubicar un ícono en la tray bar como lo hacen algunas aplicaciones del sistema? Esto me llevó a publicar el tip de hoy.
En realidad .Net lo hace muy sencillo. Necesitamos utilizar el NotifyIcon control. Este control es un componente invisible en tiempo de ejecución y que muestra un ícono en la tray bar. Su utilización es muy sencilla: basta con ubicarlo en el form y automáticamente ubica un ícono en la tray. Para que sea más funcional podemos asignarle un menú contextual en la propiedad ContextMenuStrip y reaccionar a diferentes eventos del form para se muestre en determinadas ocasiones únicamenteLes publico un ejemplo de la utilización de este control para que lo prueben. Asume que han creado una aplicación windows con un control NotifyIcon y un ContextMenuStrip llamados NotifyIconCtl y ContextMenuStripCtl respectivamente.
El ejemplo muestra como visualizar el ícono solo cuando se minimiza la aplicación y como reacciona antes eventos en la tray. Pueden bajar el ejemplo completo desde aquí.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | Public Class Form1 Private Sub OpcionesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpcionesToolStripMenuItem.Click MessageBox.Show("Opciones", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information) End Sub Private Sub RestaurarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RestaurarToolStripMenuItem.Click Restaurar() End Sub Private Sub CerrarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CerrarToolStripMenuItem.Click Application.Exit() End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load NotifyIconCtl.Visible = False End Sub Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize If Me.WindowState = FormWindowState.Minimized Then Ocultar() End Sub Private Sub Restaurar() Me.WindowState = FormWindowState.Normal NotifyIconCtl.Visible = False Me.ShowInTaskbar = True Me.Show() End Sub Private Sub Ocultar() NotifyIconCtl.Visible = True Me.ShowInTaskbar = False Me.Hide() NotifyIconCtl.ShowBalloonTip(2000, Me.Text, Me.Text & " en la Try Icon!!!", ToolTipIcon.Info) End Sub Private Sub NotifyIconCtl_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIconCtl.MouseClick If e.Button = Windows.Forms.MouseButtons.Left Then NotifyIconCtl.ShowBalloonTip(5000, "Notify Icon Demo", "Tray Icon application enabled!!!", ToolTipIcon.Info) End If End Sub End Class |





Recent Comments