Ich arbeite an einer älteren WinForms-MDI-Anwendung und habe Probleme, die untergeordneten Formulare so zu gestalten, wie ich es möchte. Mein Ziel ist es, dass das Kind immer maximiert (angedockt) wird.
Das Problem ist, dass, selbst wenn ich MaximizeBox
auf false
setze, die Schaltfläche Maximieren / Größe im MDI-Toolstrip erscheint und der Benutzer die Größe des untergeordneten Formulars ändern kann.
Die einzige Möglichkeit, dies zu vermeiden, ist ControlBox
auf false
zu setzen, aber dann verschwindet die Schließen-Schaltfläche zu (das ist nicht was ich will).
Ich habe bereits versucht, ein festes FormBorderStyle
zu verwenden und das untergeordnete Formular zu maximieren, wenn das resize-Ereignis ausgelöst wird, aber keiner meiner Ansätze funktioniert.
Gibt es eine super geheime Eigenschaft, die ich verpasst habe oder ist das einfach unmöglich?
Beste Grüße & amp; Vielen Dank im Voraus
Ich schrieb eine schmierige Methode (Danke an @rfresia) für den Umgang mit meinem Kind, es könnte anderen helfen, die auf dasselbe Problem stoßen:
%Vor%Sie können die OnResize für jedes untergeordnete Formular überschreiben, das Sie nicht minimieren möchten. Oder erstellen Sie ein BaseForm und erben Sie alle untergeordneten Formulare davon.
%Vor%Sie können auch X, y-Koordinaten verwenden, aber OnResize sollte ausreichen. Setzen Sie dies in den Kindformularkonstruktor:
%Vor%Ich habe den Code für das X, Y von hier: Ссылка
Das Problem war nicht einfach zu lösen, aber ich habe die Antwort zufällig gefunden und es ist ziemlich einfach; Setzen Sie den Fensterstatus des untergeordneten Formulars standardmäßig auf Normal. Stellen Sie dann sicher, dass Sie den Fensterstatus des untergeordneten Fensters zurücksetzen. NACH rufen Sie die Methode Show()
auf.
Beispiel:
%Vor%