2016-09-29 12 views
-1

私は2つのフォームform1とform2を持っています 私はform2をform2から隠そうとしています。 どうすればいいですか?
私はform2で私のプロセスを終了しない限り、私はform1を非表示にしたくありません。私がform2で私のプロセスを完了すると、私のform1は閉じる/隠れます。現在のフォームから他のフォームを隠す方法C#

以下のコードは機能しません。 。 。

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

または

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

新しいフォームを作成しないでください。代わりに、あなたの存在する 'form1'を隠すべきです。 'form1'はあなたが隠す必要のあるフォームのインスタンスを指し示す変数であると仮定すると、' form1.Hide() 'のようにします。 –

+0

コメントありがとうございます。それを隠す方法?もし私が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(); 
       } 
関連する問題