Frage

Ich möchte den Benutzer verhindern, dass der Windows Form auf Vollbild maximiert so dass ich auf die Schaltfläche Maximieren deaktiviert haben. der Benutzer in der Lage sein ‚wiederherstellen‘ das Formular jedoch ich will. Wenn sie auf die Schaltfläche Wiederherstellen klicken mag ich es eine andere, kleinere, minimierte, Form zeigen, die ihnen eine Maximierungsschaltfläche zeigen, die den Einsatz in der ursprünglichen Form zurück.

Gibt es eine Möglichkeit, dies zu tun?

Danke.

edit: Du verstehst das nicht, ich bin verhindern den Benutzer nicht von der Form Größe ändern. Was geschieht, wenn die auf die Schaltfläche Wiederherstellen klicken, wird das Formular, und öffnen Sie eine neue mit weniger Kontrollen auf ausblenden. Wenn sie auf der kleineren Form maximieren klicken, um es in der ursprünglichen Form zurück.

War es hilfreich?

Lösung

Ich sah ein ähnliches Problem auf diesem bei der Arbeit und die einzigen Lösungen kann ich beteiligt Einstellung ohne Papiere Fensterstile finden, die ich nicht geneigt war, zu tun.

Deshalb ist die beste Lösung für Ihr Problem wäre ich denke, dass die aktuellen Minimieren / Maximieren / Wiederherstellen Tasten verstecken und fügen Sie Ihre eigenen einige Ownerdraw oder andere Befehle.

bei dieser Suche aus einer Perspektive Interaktion mit dem Benutzer würde ich will, dass die Minimieren / Maximieren / Wiederherstellen Tasten genau das Gleiche für Ihre Anwendung zu tun, wie sie für alle andere tun. diese Funktionalität Aufschalten Verwirrung für die Benutzer schaffen würde, warum also würde ich die Schaffung verschiedene Tasten entweder auf der Titelleiste oder irgendwo anders auf Ihrer Schnittstelle empfiehlt die diese Funktion ausführen.

Andere Tipps

FWIW, die richtige Antwort ist richtig zu machen, die Größe Ihrer Form, zu jeder Fenstergröße anzupassen und nicht den Benutzer zu beschränken, was richtig auf aussieht Ihr Display auf Ihr Auflösung und Ihre Schriftgröße. Nicht resizeable Fenster eines der ärgerlichsten Sachen, die ich in einer Anwendung auftreten (Windows selbst ist voll von ihnen).

Sie können das Maximum und MinimumSize- eingestellt und die Maximieren-Schaltfläche aktivieren Sie diese Art von Effekt zu erhalten.

Ich hatte eine ähnliche Situation vor kurzem, und von einer UI-Design-Perspektive, ein gutes Beispiel in Windows Media Player gefunden. Er verlässt das Minimieren, Maximieren und Wiederherstellen Tasten, wie sie sind, und verfügt über eine separate Taste rechts unten für „Switch to Compact Mode“. Und im Mini / Kompakt-Modus, schaltet die gleiche Taste auf „Vollmodus wechseln“. Ein weiteres alternatives Beispiel ist Skype, das eine zusätzliche System Symbolschaltfläche hat gerade links von dem Standard minimiert Taste, die zwischen Compact und Standard-Modi umgeschaltet.

(Wenn ich das Privileg habe, würde ich lieber habe dies als Kommentar zu setzen, um Daemin des akzeptierten Antwort hinzuzufügen, noch relativ neu auf Stackoverflow)

‚Wiederherstellen‘ eine Form löst die Resize Veranstaltung, wo Sie überprüfen können, ob das übergeordnete Formular FormWindowState.Maximized nicht mehr. Wenn nicht, können Sie das untergeordnete Formular öffnen und die Eltern verstecken.

Um dies zu umkehren, können Sie ‚maximieren‘ das Kind Form durch Ausblenden (oder Entsorgung) ist es, dann un-hide und stellen Sie das übergeordnete Formular zu FormWindowState.Maximized.

Das einzige Problem, das ich mit dieser Methode sehen kann, ist, dass das Resize Ereignis wahrscheinlich mehrmals ausgelöst wird, bevor das Formular einen Maximumized Zustand erreicht. kann ein Flag benötigt werden, um diese zu ignorieren, bis die Form in den gewünschten Zustand von dem aktuellen Zustand übergeht, die eine unendliche Schleife verursachen kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top