2017-03-09 8 views
-1

habe ich in der Regel den folgenden Code ein Formular anzuzeigen:Wie erstellt man eine gemeinsame Funktion für das Show-Formular?

frmEmployeeManage em = null; 
private void ShowEmployee_Click(object sender, EventArgs e) 
    { 

     if (em == null || em.IsDisposed) 
     { 
      em = new frmEmployeeManage(); 
      em.MdiParent = this; 
      em.FormBorderStyle = FormBorderStyle.None; 
      em.WindowState = FormWindowState.Maximized; 
      em.Show(); 
     } 
     else 
     { 
      em.Activate(); 
     } 
    } 

Jetzt möchte ich für die Ansicht Form eine Funktion schreiben. Der folgende Code Ich weiß nicht, wie eine Formularklasse als Parameter an die Funktion übergeben wird.

class CommonService 
{ 
    public static void ShowFrom(Form frmChild, Form frmParent) 
    { 
    if (frmChild == null || frmParent.IsDisposed) 
    { 
     frmChild = new Form(); // How passing the form class here? 
     frmChild.MdiParent = frmParent; 
     frmChild.FormBorderStyle = FormBorderStyle.None; 
     frmChild.WindowState = FormWindowState.Maximized; 
     frmChild.Show(); 
    } 
    else 
    { 
     frmParent.Activate(); 
    } 
    } 
} 

Schließlich verwende ich die Show die Form der Funktion wie das folgende Beispiel:

frmEmployeeManage em = null; 
CommonService.ShowForm(frmEmployee, this); 
+2

Was ist schiefgelaufen? – Berkay

Antwort

1

Ich denke, was Sie brauchen einen ref Parameter zu verwenden ist:

public static void ShowFrom<T>(ref T frmChild, Form frmParent) where T : Form, new() 
    { 
    if (frmChild == null || frmParent.IsDisposed) 
    { 
     frmChild = new T(); // How passing the form class here? 
     frmChild.MdiParent = frmParent; 
     frmChild.FormBorderStyle = FormBorderStyle.None; 
     frmChild.WindowState = FormWindowState.Maximized; 
     frmChild.Show(); 
    } 
    else 
    { 
     frmParent.Activate(); 
    } 
    } 

Und es so nennen :

frmEmployeeManage em = null; 
CommonService.ShowForm(ref em, this); 

ref können Sie den Wert des Parameters in einer Methode ändern, und die Änderungen spiegeln sich auch in der übergebenen Variablen wider.

+0

@rene Bearbeitet. Was für ein dummer Fehler! – Sweeper

+0

Vielen Dank! – Vincent

Verwandte Themen