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.us    

Hace 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.Ejemplo Notify Icon
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
Tags:, , , , , , ,

HOWTO:Fechas/Dates

HowTo, Tips, VB.NET, .NET No Comments » Add to Del.icio.us    

El tip de hoy parece ser algo común y corriente, pero durante mis cursos de .NET he encontrado que mis alumnos y quienes recién están utilizando la orientación a objetos de .NET o utilizan mucho VB6, no pueden crear una fecha específica sin hacer uso de conversiones de tipos de datos. La mayoría tiende a utilizar strings para representar una fecha. También se preocupan por un determinado formato de la misma y no contemplan el tipo de dato que es lo que importa: .NET tiene un tipo de dato DATE como cualquier otro y está preparado para facilitar el tratamiento de las mismas. Por lo tanto debemos hacer uso del mismo y no utilizar otro en su lugar. Respecto a cómo crear una fecha se tiende a utilizar:

1
Dim Fecha As Date="15/08/2007"

Asumiendo que la conversión implícita de Visual Basic haga el resto. Error: La fecha indicada contiene un formato específico y puede tener problemas de conversión según configuración regional y otros tipos de cosas. Lo adecuado es utilizar un CONSTRUCTOR de la clase DATE para tal fin:

1
Dim Fecha As Date = New Date(2007,8,15)

De esta manera podemos crear una fecha como corresponde independizándonos de la configuración regional y el formato de la misma. No hay que olvidar que todo en .NET es una clase por lo cuál es importante verificar qué nos proporcionan los constructores de los tipos de datos y utilizar el Intellisense para tal propósito.

Tags:, , , , , ,
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login