Синглтон winform не отображается с Application.Run () - PullRequest
0 голосов
/ 02 ноября 2011

Проблема: При выполнении кода ниже с помощью Application.Run () без параметров ничего не отображается.

Справочная информация: у меня есть приложение WinForms, которое я запускаю, и я хочу, чтобы форма по умолчанию была одноэлементной и не отображалась при первом запуске Application.Run (я хочу получить полный контроль над тем, когда его показывать).

В моем Program.cs, используя

Application.Run(Form1.Instance)

работает отлично, но я использую Application.Run () без параметров, за которым следует Form1.Instance.Show (), чтобы я мог контролировать, когда скрывать и показывать мою форму Form1.

Что мне здесь не хватает?

Program.cs:

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run();
        Form1.Instance.Show();
    }
}

Form1.cs:

public partial class Form1 : Form
{
    private static Form1 instance;

    public Form1()
    {
        InitializeComponent();
    }

    public static Form1 Instance
    {
        get
        {
            if (instance == null)
            {
                instance = new Form1();
            }
            return instance;
        }
    }
}

1 Ответ

4 голосов
/ 02 ноября 2011

положить Form1.Instance.Show (); перед Application.Run ();

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1.Instance.Show();
        Application.Run();

и обработать закрытое событие Form1 t или приложения для выхода

    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        Application.Exit();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...