2013-06-29 7 views

答えて

4

フォームが既に開かれているかどうかをチェックすることができます:

Form instance = null; 

    // Looking for MyForm among all opened forms 
    foreach (Form form in Application.OpenForms) 
    if (form is MyForm) { 
     instance = form; 

     break; 
    } 

    if (Object.ReferenceEquals(null, instance)) { 
    // No opened form, lets create it and show up: 
    instance = new MyForm(); 
    instance.Show(); 
    ... 
    } 
    else { 
    // MyForm has been already opened 

    // Lets bring it to front, focus, restore it sizes (if minimized) 
    if (instance.WindowState == FormWindowState.Minimized) 
     instance.WindowState = FormWindowState.Normal; 

    instance.BringToFront(); 

    if (instance.CanFocus) 
     instance.Focus(); 
    ... 
    } 
+0

ドミトリー、 – n8coder

0

多分これはあなたを助けることができる:

public static bool formOpened = false; // it is global boolean 
Form2 instance; 

あなたのフォームを開くとき:

if(formOpened == false) 
{ 
    instance = new Form2(); 
    instance.Show(); 
    formOpened = true; 
} 
else 
{ 
    instance.Focus(); 
} 

つ以上あなたのForm2が閉じられた後は、formOpenedの値をfalseに設定する必要があります。

関連する問題