2016-09-29 3 views
-1

У меня есть две формы form1 и form2 Я пытаюсь скрыть свою форму1 из формы2. Как это сделать?
Я не хочу скрывать форму1, если не закончу свой процесс в форме2. Если я закончу свой процесс в форме2, то моя форма1 закроется/скроется.как скрыть ДРУГИЕ формы из текущей формы C#

приведенный ниже код не работает. , ,

 Form1 Frm = new Form1(); 
     Frm.Hide(); 

или

 Form1 Frm = new Form1(); 
     Frm.Visible = false; 
+0

Не следует создавать новую форму. Вместо этого вы должны скрыть существующую 'form1'. Предположим, что 'form1' является переменной, указывающей на экземпляр формы, который вам нужно скрыть, просто сделайте это как' form1.Hide() '. –

+0

Спасибо за комментарий. как скрыть это? если im в form2? Я не могу напрямую поставить Form1.Hide(); –

+0

Очевидно, 'Form1' - это имя вашего класса формы. Но есть ли у вас какой-либо экземпляр этого класса (самой формы), доступный в вашей 'form2'? Код, который вы предоставили, недостаточен, чтобы сделать предположение о нем. Можете ли вы показать более подходящий код? –

ответ

0

Вы должны использовать коллекцию Application.OpenForms, найти свою открытую форму там и вызвать метод .hide() на нем.

+0

Большое спасибо. Вы можете закрыть этот вопрос. благодаря –

0

Я использовал этот код, и он работает. Спасибо @PedroLuz!

var frm = Application.OpenForms.Cast<Form>().Where(x => x.Name == "Form1").FirstOrDefault(); 
       if (null != frm) 
       { 
        frm.Hide(); 
       }