Кто-то в комментарии ответил на ваш вопрос, но вот еще объяснение:
Если вы перейдете на Документы Microsoft , вы найдете жизненный цикл формы Windows FORM
Такпри запуске формы это выглядит так:
- Control.HandleCreated
- Form.Load
- Form.Activation
- Form.Shown
В качестве объяснения для Form.Shown
в документации написано Occurs whenever the form is first displayed.
Итак, в основном, когда вы делаете в своем коде:
Form f1 = new Form();
Вы создали экземпляр вашегоформа, которая запускается public f1()
внутри вашего f1
файла, НО все равно она не отображается, поэтому вы не можете скрыть то, что даже не отображается.
Когда вы звоните f1.Show()
или f1.ShowDialog()
, это будет show
формы, и это делается до того, как Form.Shown
часть запускается, поэтому внутри этого метода отображается форма.
Решение для этого - перейти к вашей форме и создать событие Form.Shown()
(в окнах дизайна выберите форму (неконтроль внутри него) и на правой стороне у вас есть окно свойств. В верхней панели в собственности wiТеперь вы можете переключаться между свойствами и событиями.Переключитесь на события и найдите Shown
событие.Когда вы найдете его двойным щелчком в пространстве справа, оно автоматически создаст для вас событие в коде)
Теперь, когда вы создали показанное событие, скопируйте в него код, и оно будет работать.