Creo que a lo que quieres llegar es algo similar con el msn. Que si clikeas la "x" se cierre el formulario pero se su icono se quede abajo. Pues en realidad el formulario no se cierra sino se oculta. Si deseas que cuando el usuario le de cerrar se oculte coloca el siguiente método.
Código:
Dim ControlClose As Boolean = False
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If Not ControlClose then
e.Cancel = True
me.hide()
End If
End Sub
con esto lograrás que tu formulario se oculte pero el icono siga en la barra de tareas. Pero eso si, debes colocarle un boton en tu icono exclusivamente para cerrar mediante un "ContextMenu" y colocar esta secuencia
Código:
ControlClose = true
Me.Close()
La variable "ControlClose" es un atributo del programa o variable global como muchos los conocen, es importante para que controles las acciones de tu programa. Finalmente, si deseas que con doble click en el icono se vuelva a mostrar tu programa entonces llama al evento "DoubleClick" de tu NotifyIcon y le colocar un "Me.show" eso es todo. Espero que sea de tu ayuda porque por lo que entendí era un problema similar a ese y si no lo es lo puedes volver a explicar para buscar una solución.
Nota: Si deseas que el programa se inicie pero que no se muestre el formulario y solo el icono, en tu load colocale "Me.hide()"
ATTE RealTMegalix