関係

2011-02-02 7 views
1

方法開くフォーム:関係

をForm1 - > Form2を - そこにForm1の>たForm3

ChecklistBox。どのようにform3を知っているそれはアクティブであるかどうか?

+0

これは公式ではありません。方程式には等号があります。 – jason

+1

私は " - >"は "開く"を意味すると考えています – SteveCav

答えて

0

私は、フォーム3が開かれているかどうか尋ねていることを理解しています。それが間違っているなら、私に教えてください。

おそらく数多くの方法がありますが、それはすべてあなたがしたいことに依存します。

一つの簡単な方法は、どこかのフラグを残すことになり、あなたのProgram.csファイルで言う

public static bool Form3IsOpen = false; 

その後:

private void Form3_Load(sender object, EventArgs e) 
{ 
    Program.Form3IsOpen = true; 
} 

そして:

private void Form3_Close(sender object, EventArgs e) 
{ 
    Program.Form3IsOpen = false; 
} 

補足:

また、k EEPサブフォームへの参照:Form1.csで

private Form2 FormChild; 

//In the function that opens the Form2: 
FormChild = new Form2(); 
FormChild.Show(); 

はForm2がたForm3を保持するために類似した何かを持っています。あるフォームが複数のフォームを開くことができる場合は、配列またはコレクションを使用してください。

+0

チェックリストが有効かどうかを理解したいと思います。 – ups

+0

@ups:あなたが何を意味するのか分かりません。あなたは何を達成したいと思っているのか詳しく説明しますか?おそらくあなたのコードを投稿する(それがうまくいかなくても)? – MPelletier

0

私は通常、多くの異なるフォームと1つのインスタンスしか作成されませんが、私はそれらをdictonaryに入れ、フォームがあるかどうかチェックします。

このような何か:すべてのフォームの作成で今

public static Dictonary<string, Form> act_forms_in_app = new Dictonary<string, Form>(); 

私はこの

Form1 frm = new Form1(); 
frm.Name = "Myformname" 
//set its properties etc. 
frm.Load => (s,ev) { act_forms_in_app.Add(frm.Name, frm);}; 
frm.Load += new EventHandler(frm_Load); 
frm.Disposed => (s, ev) { act_forms_in_app.Remove(frm.Name)}; 

//your usual form load event handler 
public void frm_Load(object sender, EventArguments e) 
{ 
    ... 
} 

ようにあなたは、フォームは、あなたがしている場合

Form frm = //Your form object 
if(act_forms_in_app.ContainsKey(frm.Name)) 
{ 
    //Perform as required 
} 
+0

チェックリストが有効かどうかを理解したい。 – ups

1

を確認したいどこかにそれを行います参照先はMDI child forms

Form activeChild = this.ActiveMdiChild; 

他の場合は、MDI子フォームを使用しない場合は次のコードを使用できます。

Form currentForm = Form.ActiveForm; 
+0

チェックリストが有効であるかどうか理解したい。 – ups