как отобразить c # даже после нажатия кнопки X? - PullRequest
0 голосов
/ 01 сентября 2018

Мне нужно спрятать свою форму после закрытия, потому что я не хочу ее перестраивать, поэтому я делаю это.

 private void dLCD_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.Hide();
            e.Cancel = true; 
        }

Чтобы восстановить окно, я использую .show (). Хотя, показанный не называется, но в первый раз. Я не могу найти какие-либо события, которые будут срабатывать после вызова .show (). Мое лучшее предположение было для активированного события, чтобы исправить это, но оно ничего не делает. Я рассмотрел использование флага и что-то вроде getFocus, но он тоже не вызывается на .show ()

Не могу найти хорошее решение.

1 Ответ

0 голосов
/ 01 сентября 2018

Я предлагаю вместо этого использовать событие Form.VisibleChanged. Это событие вызывается каждый раз, когда видимость формы изменяется. Таким образом, вам нужно иметь флаг, чтобы определить, когда вы хотите выполнить код запуска (код, который у вас есть в показанном событии).

Пример, чтобы дать вам представление о том, как могут выглядеть обработчики событий:

 private void Form1_VisibleChanged(object sender, EventArgs e)
 {
            if (_isClosing)
            {

            }
            else
            {
                // Code when form is shown
            }

            _isClosing = false;
    }

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
            _isClosing = true;
            e.Cancel = true;
            Hide();
    }
...