hm,
vielleicht verstehe ich mal wieder die frage net ganz, aber wieso verwendest du nicht einfacht die show/hide methoden deiner 
entsprechenden control ? natürlich ginge es auch ohne form, aber die sinnhaftigkeit eines programms, welches wirklich garkeine
usereingaben ermöglicht, wage ich zu bezweifeln. ich würde mir einfach ein WinForms/WPF Projekt erstellen, das fenster verstecken
und nur ein trayicon anzeigen. die paar kb speicher für ein fenster schaden heute keinem rechner mehr 
 
												| 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:
 43:
 44:
 45:
 46:
 47:
 
 | using System;using System.Windows.Forms;
 
 namespace WindowsFormsApplication1
 {
 public partial class Form1 : Form
 {
 private NotifyIcon _myTrayIcon;
 
 public Form1()
 {
 InitializeComponent();
 _myTrayIcon = new NotifyIcon();
 _myTrayIcon.Icon = ((System.Drawing.Icon)(WindowsFormsApplication1.Properties.Resources.colorselector));
 _myTrayIcon.Text = "Show/Hide";
 _myTrayIcon.Visible = true;
 _myTrayIcon.ContextMenu = _getMenu();
 }
 
 private ContextMenu _getMenu()
 {
 ContextMenu outp = new ContextMenu();
 MenuItem show = new MenuItem();
 MenuItem hide = new MenuItem();
 
 show.Text = "Zeige Fenster";
 show.Click += new EventHandler(_showWindow);
 hide.Text = "Verstecke Fenster";
 hide.Click += new EventHandler(_hideWindow);
 
 outp.MenuItems.Add(show);
 outp.MenuItems.Add(hide);
 
 return outp;
 }
 
 private void _showWindow(object sender, EventArgs e)
 {
 Show();
 }
 
 private void _hideWindow(object sender, EventArgs e)
 {
 Hide();
 }
 }
 }
 | 
		
	  
edit : 
WindowsFormsApplication1.Properties.Resources.colorselector ist ein kleines icon für die traybar