Независимо от того, сколько вы пытаетесь установить свойство Visible до показа формы, оно появится. Насколько я понимаю, это потому, что это MainForm текущего ApplicationContext. Один из способов автоматически загрузить форму, но не отображать ее при запуске приложения, - это изменить метод Main. По умолчанию это выглядит примерно так (.NET 2.0 VS2005):
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Если вы вместо этого сделаете что-то подобное, приложение запустится, загрузит вашу форму и запустится, но форма не будет отображаться:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 f = new Form1();
Application.Run();
}
Я не совсем уверен, насколько это полезно, но я надеюсь, что вы это знаете; о)
Обновление: похоже, вам не нужно устанавливать для свойства Visible значение false или предоставлять экземпляр ApplicationContext (который будет создан для вас автоматически "под капотом"). Сокращенный код соответственно.