2013-06-29 4 views

Antwort

4

Sie können überprüfen, ob das Formular bereits geöffnet wurde:

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

danke Dmitry, – n8coder

0

Vielleicht können diese Ihnen helfen:

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

Wenn Sie Ihr Formular öffnen:

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

One mehr Nachdem Ihr Form2 geschlossen wurde, sollten Sie den Wert von formOpened auf false festlegen.

Verwandte Themen