Laden...

Haupt-Form wird in Win7-Design dargestellt, alle anderen Masken aber im Win10-Design

Erstellt von ChrisProg vor 6 Jahren Letzter Beitrag vor 6 Jahren 3.203 Views
ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren
Haupt-Form wird in Win7-Design dargestellt, alle anderen Masken aber im Win10-Design

Hallo zusammen,

Ich habe da mal eine Verständnisfrage:

wie steuert MS das Design der Forms ?

Ich habe ein Projekt, bei denen die Haupt-Forms (MDI-Clients) alle im Win7 Design dargestellt werden; alle anderen Masken aber im Win10 Design (auch die Messagebox) und das obwohl bei beiden Forms nichts an den Standardeinstellungen bezüglich FormBorderStyle geändert wurde 🤔

MfG ChrisProg

1.040 Beiträge seit 2007
vor 6 Jahren

Hast du mal ein Bild dazu?
Du nutzt (wahrscheinlich) Windows 10?

2.298 Beiträge seit 2010
vor 6 Jahren

Hallo,

ich hatte gestern mal ein wenig rumprobiert (nachstellen und mögliche Lösung ermitteln). Daher kann ich einen Screenshot anhängen. Eine Lösung habe ich allerdings nicht gefunden.

@ChrisProg:
Ist es für euch Überlebensnotwendig, dass die MDI-Childs das Windows 10 Layout verwenden?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren

@p!lle: ja, ich nutze Win10 ...

@inflames2k: nein ist es natürlich nicht, aber ein einheitliches Erscheinungsbild wäre natürlich schöner ...

MfG ChrisProg

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

ich würde fast behaupten das ist Standard.

Microsoft empfiehlt ja auch schon länger keine MDI-Forms mehr zu verwenden...

Falls dir das Geld wert ist kannst du dich z.B. mal bei DevComponents umsehen - die haben z.B. auch einen MDI-TabStrip, den ich noch in guter Erinnerung habe. (Gemeinsam mit entsprechenden Basisklassen für Forms)

LG

ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren

OK, aber wenn ich auf MDI verzichte, wie kann ich dann verhindern, das eine Untermaske den Bereich der Hauptmaske verlässt (also per Maus herausgeschoben werden kann, z.B. auf den zweiten Monitor...) ?

MfG ChrisProg

16.806 Beiträge seit 2008
vor 6 Jahren

Das liegt daran, dass MDI Forms nicht nativ (vom System => Desktop Windows Manager) erzeugt werden und sich niemand um eine Design-Anpassung gekümmert hat - eben weil sie schon lange nicht mehr empfohlen werden.

Warum willst Du denn Benutzer in ihrer UX gängeln und einschränken?
Das ist eine extreme bad practise in der UX. Wieso willst Du dem Benutzer nicht seine Freiheit lassen?
hat das tatsächlich funktionale Gründe - oder Politik?

1.040 Beiträge seit 2007
vor 6 Jahren

...also per Maus herausgeschoben werden kann, z.B. auf den zweiten Monitor...

Gibt es dafür einen Anwendungsfall?

ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren

Warum willst Du denn Benutzer in ihrer UX gängeln und einschränken?
Das ist eine extreme bad practise in der UX. Wieso willst Du dem Benutzer nicht seine Freiheit lassen?
hat das tatsächlich funktionale Gründe - oder Politik?

weder noch - ich finde es einfach schöner, wenn die Untermasken sich innerhalb der Grenzen der Hauptmaske bewegen (vielleicht bin ich da zu "oldschool") ...

Auch stört mich, das, wenn ich die Hauptmaske minimiere, die Untermasken geöffnet bleiben; minimiere ich sie ebenfalls, so erhalten sie ein kleines eigenes Fenster - finde ich einfach nicht schön ...

All diese Eigenschaften habe ich mit MDI nicht ...

Wenn jemand in diesem Bereich Denkanstöße hat - bitte immer gerne her damit 😁

MfG ChrisProg

709 Beiträge seit 2008
vor 6 Jahren

Auch stört mich, das, wenn ich die Hauptmaske minimiere, die Untermasken geöffnet bleiben; minimiere ich sie ebenfalls, so erhalten sie ein kleines eigenes Fenster - finde ich einfach nicht schön ...

Ich habe in Erinnerung, dass man bei MDI-Fenstern ein Minifenster am Rand hat und normale Fenster beim Minimieren - wie das Hauptfenster - einfach "in der Taskleiste" verschwinden.

ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren

Ich habe in Erinnerung, dass man bei MDI-Fenstern ein Minifenster am Rand hat und normale Fenster beim Minimieren - wie das Hauptfenster - einfach "in der Taskleiste" verschwinden.

Nur wenn Du die Eigenschaft "ShowInTaskbar" auf true lässt ...
Aber das finde ich noch unsinniger, wenn man alle Untermasken in der Taskleiste anzeigt ...

MfG ChrisProg

4.931 Beiträge seit 2008
vor 6 Jahren

Da könnte man doch eine eigene Form-Klasse für entwickeln (bzw. 2 - eine für die MainForm und eine für die Child-Forms), welche dann automatisch die Minimieren/Maximieren-Funktionalität anbietet.

W
195 Beiträge seit 2008
vor 6 Jahren

Also in Zeiten von immer mehr 'Multi-Monitor'-Umgebungen sind MDI-Anwendungen wirklich überlebt und in meinen Augen - wurde ja schon mehrfach erwähnt - auch eine unnötige Gängelung der User. Ich sehe auch gar keinen Grund warum sich alle Fenster der Anwendung ebenfalls minimieren müssen, wenn ich das Hauptfenster minimiere - das überlasse ich dem Anwender. Aber wenn Du das unbedingt benötigst, hilft Dir z.B. die Auflistung Form.OwnedForms weiter. Über die kannst Du dann z.B. alle 'OnwnedForms' ebenfalls minimieren, wenn das Hauptfenster minimiert wird und ähnliches...

Alternativ dazu kannst Du mal nach dem Stichwort 'Docking' suchen... Es gibt zu diesem Thema zahlreiche Frameworks (DevComponents, DevExpress etc...).

Und wenn es denn MDI sein soll: bei DevExpress gibts eine Lösung, bei der die Skins der Kindfenster dem Elternfenster entsprechen (bzw. frei wählbar sind).

ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren

... Aber wenn Du das unbedingt benötigst, hilft Dir z.B. die Auflistung Form.OwnedForms weiter. Über die kannst Du dann z.B. alle 'OnwnedForms' ebenfalls minimieren, wenn das Hauptfenster minimiert wird und ähnliches...

Das kannte ich noch nicht - und hilft mir schon weiter, danke dir / euch für die Inputs 👍

Das mit den Forms außerhalb der Hauptmaske lasse ich erst mal so ...

Nur muss ich mir dann noch etwas einfallen lassen, wenn der Kunde die Maske außerhalb des sichtbaren Bereichs gezogen hat - wie ich diese schnell wieder zurück bekomme ...

MfG ChrisProg

1.040 Beiträge seit 2007
vor 6 Jahren

Von wie vielen geöffneten Untermasken reden wir denn? 🤔

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

noch ein Hinweis an der Stelle - der grobe Look von MDI ist ja per se auch nicht so unüblich. (Siehe allein euer aller IDE)

Das Thema ist mehr, dass man das heute nicht mehr wirklich mit MDI macht - glaube das nennt man gerne Tabbed Pages in Verbindung mit Docking.

Es gibt in meinen Augen durchaus einige Anwendungen, wo das Sinn macht. Ein ERP, IDE - alles wo eben (regelmäßig) mehr Fenster offen sind als es komfortabel im Windows wäre.
(Ich für meinen Teil würde fluchen, wenn ich immer per Windows zwischen den Fenstern switchen müsste in VS oder meinem ERP)

Muss gestehen, dass Windows Forms (mit DevCompoments) dort auch nicht perfekt ist wenn ich mich recht entsinne, da dies ja quasi nur die Tabs hat. Wirklich gut ist es in meinen Augen, wenn z.B. der Default wie MDI als Tab funktioniert - der User aber auch problemlos die Möglichkeit hat Fenster dort rauszuholen und/oder ggf. docken kann. (Unter WPF geht das z.B. mit AvalonDock oder halt von den anderen Anbietern...)

LG

ChrisProg Themenstarter:in
174 Beiträge seit 2009
vor 6 Jahren

@p!lle: typischerweise 3 Masken; ich habe bei einigen Kunden aber auch schon mehr gesehen ...

@Taipi88: "Tabbed Pages mit Docking" kommt wohl für ein Wawi-System eher nicht in Frage, aber Ineressant wäre es trotzdem.

MfG ChrisProg

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

wieso sollte das nicht in Frage kommen?

Im Standard sieht's so aus wie gehabt - und in meinem WaWi kopier ich auch gerne mal was von a nach b oder hab gerne 2 Sachen im Blick. Da sind Tabbed Pages in Verbindung mit mehreren Screens ein Segen, den ich persönlich gerne genießen würde. (Leider aber nicht darf...)

LG

PS: Hab bei mir aufgabenbedingt schon zum Start des Tages 3 Masken offen - Sinn machen bei mir gerne auch mal 7 Masken und mehr...

W
195 Beiträge seit 2008
vor 6 Jahren

Ich kann Taipi88 hier nur beipflichten. Ich entwickle selbst eine sehr komplexe Anwendung, in der WaWi nur einen Teil ausmacht und verwende dafür ein TabbedUI auf Basis der DevExpress-Controls (https://www.devexpress.com/Products/NET/Controls/WinForms/Desktop_UI/). Für die Anwender ist es einfach ein Segen, wenn Sie z.B. mehrere Kunden, Belege oder Produkte parallel öffnen und vernünftig anordnen und verwalten können. Das können dann gern auch schon mal 40 - 50 'Fenster' sein, die da 'gleichzeitig' geöffnet sind...

Verschweigen darf man aber nicht, dass das Ganze schon einen gewissen Mehraufwand bedeutet, weil z.B. Daten zwischen den Fenstern ggf. synchronisiert werden müssen - hier muss man sich im Vorfeld Gedanken machen und sich eine vernünftige Basis schaffen - dann ist es allerdings IMHO sehr sehr benutzerfreundlich - gerade wenn man mehrere Monitore zur Verfügung hat...

H
523 Beiträge seit 2008
vor 6 Jahren

Da muss ich Taipi88 und wcseller zustimmen. Wir setzen die Controls von Telerik in unserem ERP ein und die Benutzer finden es toll, dass man einzelne Tabs aus der Anwendung herraus auf einen anderen Monitor ziehen kann. Im Prinzip dieselbe Technik die auch Visual Studio verwendet.