2017-01-31 5 views
-3

In meinem C# forms-Projekt möchte ich, dass diese Methode jedes Mal ausgeführt wird, wenn ich eines meiner Formulare einlege.C# Wie erstelle ich eine Prozedur, die jedes Mal ausgeführt wird, wenn ein Formular geladen wird?

 foreach (Form frm in Application.OpenForms) 
     { 
      frm.WindowState = FormWindowState.Normal; 
      frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
      frm.Bounds = Screen.PrimaryScreen.Bounds; 
     } 
+0

Warum 'foreach' Kann nicht in Klassen verwendet werden und warum 'WindowState' existiert nicht? Ich bin dadurch verwirrt. –

+0

Gibt es ein mdiParent für Ihre Formulare? –

+0

[Das ist, was ich sehe] (http://i.imgur.com/elrkz0j.png) – Tom1

Antwort

0

Mein Vorschlag: erstellen Baseclass

public class BaseClass: Form 

... und fügen Methode zu:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    foreach (Form frm in Application.OpenForms) 
    { 
     frm.WindowState = FormWindowState.Normal; 
     frm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
     frm.Bounds = Screen.PrimaryScreen.Bounds; 
    } 
} 

Fügen Sie diese exakte Basisklasse für jede Ihrer Formen, wie solche :

public partial class Form1 : BaseClass 
+0

Bitte formatieren Sie zumindest Ihren Code richtig –

+0

ja Ich verstehe, wie man es für jedes Formular laden kann, aber wie würde ich das nur machen, wenn eine vorherige Bedingung wahr ist – Tom1

+0

Oh, ich sehe jetzt. Aber hier in dieser Methode können Sie verwenden, wenn (WindowState == FormWindowState.Maximized) –

Verwandte Themen