Я часто использую следующее решение для этого случая: создайте контекст приложения и используйте его в проекте WinForm вместо формы.
Создать класс контекста приложения
public class MyApplicationContext : ApplicationContext
{
public MyApplicationContext()
{
}
void Exit(object sender, EventArgs e)
{
Application.Exit();
}
}
В Program.cs -> заменить оригинальный вызов Application.Run ()
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 frm = new Form1(); //remove if not needed
Application.Run(new MyApplicationContext());
}
Поскольку вы больше не показываете форму, вам необходимо предоставить другие способы закрыть приложение.Т.е. используйте системный трей, а затем позвоните:
Application.Exit();
Примечание. Используя вышеприведенное (не отображая форму), вы никогда не получите обычные события формы, такие как загрузка, закрытие, закрытие,