Делать форму невидимой при первой загрузке - PullRequest
1 голос
/ 26 января 2011

В настоящее время непрозрачность формы равна 0%, поэтому при загрузке она должна быть невидимой, но при загрузке формы она видна в течение нескольких секунд. Поскольку непрозрачность по умолчанию установлена ​​на 0%, а видимость формы установлена ​​на false, прежде чем ее непрозрачность вернется к 100%, я думаю, что форма должна быть невидимой, пока я не скажу это.

    public FormMain()
    {
        InitializeComponent();
        this.Visible = false;
        this.Opacity = 1.00;
    }

Как сделать форму невидимой по умолчанию?

1 Ответ

6 голосов
/ 26 января 2011

Это возможно. Вы должны помешать классу Application сделать форму видимой. Вы не можете повозиться с приложением, которое заблокировано. Но это работает:

    protected override void SetVisibleCore(bool value) {
        if (!this.IsHandleCreated) {
            this.CreateHandle();
            value = false;
        }
        base.SetVisibleCore(value);
    }

Это одноразовая отмена, ваш следующий вызов Show () или установка Visible = true сделает его видимым. Вам понадобится какой-то триггер, типичное контекстное меню NotifyIcon. Помните, что событие Load не будет запущено, пока оно не станет видимым. Все остальное работает как обычно, вызов метода Close () завершает программу.

...