Я делал что-то похожее с этим раньше (возможно, я даже использовал ссылку выше в качестве ссылки), но вот как я это выполнил.
В вашем основном методе (обычно program.cs) вы хотите, чтобы ваш код выглядел примерно так ...
Application.EnableVisualStyles();
createIcon cIcon = createIcon.getIconObject();
Application.Run();
cIcon = null;
Внутри вашего класса createIcon у вас будет что-то в такой степени:
private static readonly createIcon cIcon = new createIcon();
private NotifyIcon notify;
private ContextMenuStrip contextMenu = new ContextMenuStrip();
private bool IsDisposing = false;
public static createIcon getIconObject()
{
return cIcon;
}
private createIcon()
{
ToolStripMenuItem ssItem = new ToolStripMenuItem("Open", null, new EventHandler(notify_DoubleClick));
contextMenu.Items.Add(ssItem);
ssItem = new ToolStripMenuItem("Settings",null, new EventHandler(settings_Click));
contextMenu.Items.Add(ssItem);
ssItem = new ToolStripMenuItem("About", null, new EventHandler(about_Click));
contextMenu.Items.Add(ssItem);
ssItem = new ToolStripMenuItem("Exit", null, new EventHandler(Menu_OnExit));
contextMenu.Items.Add(ssItem);
notify = new NotifyIcon();
notify.Icon = "Icon.ICO";
notify.Text = "Name";
notify.ContextMenuStrip = contextMenu;
notify.DoubleClick += new EventHandler(notify_DoubleClick);
notify.Visible = true;
}
public void Dispose()
{
if (!IsDisposing)
{
IsDisposing = true;
}
}
private void notify_DoubleClick(object sender, EventArgs e)
{
.... code here
}
Это должно помочь вам начать, и вы можете изменить его так, чтобы он работал лучше для вас:)