2013-06-29 10 views

Odpowiedz

4

Można sprawdzić, czy formularz został otwarty już:

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

dziękuję Dmitry, – n8coder

0

Może to pomóc:

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

Po otwarciu formularza:

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

One More rzecz jest po zamknięciu Form2, powinieneś ustawić wartość formOpened na false;

Powiązane problemy