Ich möchte vermeiden, dass mein untergeordnetes Formular häufig angezeigt wird, wenn ein Benutzer versucht, das untergeordnete Formular zu öffnen, das in MDIParent bereits geöffnet ist. Eine Möglichkeit, dies zu vermeiden, ist die Deaktivierung des Controllers (in meinem Fall BUTTON), aber ich habe auch eine Tastenkombination ( Strg + L ) für diese Funktion angegeben. Wenn also der Benutzer Strg + L eingibt, wird das gleiche untergeordnete Formular geöffnet, und ich sehe zwei untergeordnete Formulare in MDI.
%Vor%Ich möchte das vermeiden. Wie kann ich das machen?
Im Bild können Sie sehen, dass ein untergeordnetes Formular Name Online Leads zweimal geöffnet wird, wenn der Benutzer das erste Mal über Menü (LEADS) und das zweite Mal mit der Tastenkombination öffnet. Ich möchte nicht, dass das passiert. Wenn das Formular bereits geöffnet ist, sollte es vermieden werden, ein anderes Formular zu öffnen ... Wie geht das?
Die Art und Weise, wie ich es normalerweise mache, wenn ich nur eine offene haben soll, ist etwas wie:
%Vor%Ich persönlich bevorzuge eine generische Implementierung:
%Vor%Dann kannst du es einfach so benutzen:
%Vor%Dabei ist myForm der TYPE des Formulars, das Sie erstellen möchten
Fistet Zeit, wenn Sie das Formular aus dem Menü öffnen, ist die Variable frmRep null
%Vor%... also füge ich ein weiteres "if" in das erste "if" ein, um zu bestätigen, dass meine Form sichtbar ist, weil ich andere Formen habe. Wenn es nicht sichtbar ist, mache ich eine Instanz und zeige die Form, aber wenn sichtbar ist Ich benutze nur Activate ()
%Vor%Am einfachsten ist es, einen Verweis auf das untergeordnete Formular zu behalten und nur ein neues zu erstellen, wenn es nicht bereits existiert. Etwas wie das:
%Vor%Sie brauchen auch Code, um formWeblead auf null zu setzen, wenn Sie es schließen, aber ich bin sicher, dass Sie diesen Teil herausfinden können:)
Hier ist die "Methode", die ich für das Aufrufen von nur einem Formular erstellt habe, wenn Sie in MDIParent auf Menü klicken. Hoffe, diese "Methode" kann dir helfen!
Verwendung: On Even ToolStripMenuItems.
%Vor%Der Code, der dasselbe untergeordnete Formular in einem MDI-Formular verhindert
%Vor%Die einfachsten Möglichkeiten, mehrere Instanzen von Kindern zu verhindern:
%Vor%Dann nenne es so:
%Vor%die einfachen Wege, mehrere Instanzen von Kindern zu verhindern
%Vor%