Для того, чтобы закрыть форму вам необходимо иметь ссылку на эту форму. Самый простой способ сделать это - добавить новое свойство к объекту Program
в вашей программе, которое статично и доступно везде. Просто измените ваш Program.cs
файл, чтобы сделать класс Program
общедоступным и добавить соответствующую ссылку:
public static class Program
{
///This is your splash screen
public static Form1 MySplashScreen = new Form1();
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
/// This is how you run your main form
Application.Run(MySplashScreen);
}
}
Затем в своей форме вы можете легко закрыть форму заставки, используя следующий синтаксис:
Program.MySplashScreen.Close();
РЕДАКТИРОВАТЬ: В WinForms есть только один поток GUI, поэтому, пока вы выполняете закрытие из другой формы, это должно быть безопасно. Если вы хотите закрыть форму из рабочего потока, созданного в графическом интерфейсе, используйте следующий код (это должно ссылаться на вашу вторую форму):
this.Invoke((MethodInvoker)delegate {
Program.MySplashScreen.Close();
});