1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

German support forum

Moderators: sheep, Hacker, Stefan2, white

Post Reply
Tahattmeruh
Member
Member
Posts: 169
Joined: 2003-05-16, 13:35 UTC

1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Tahattmeruh »

Hallo Herr Ghisler,

mir ist gerade beim TC aufgefallen dass der TC beim verkleinern des Kopieren-Fensters auch den TC mit verkleinert und man in der Taskleiste den TC mit dem Kopieren-Dialog wieder vergrößern kann.
Wenn ich das in C# oder anderen Programmiersprachen mache, dann wird nur das oberste Fenster minimiert und nicht die dahinter auch. Wenn ich diese manuell mit minimiere, dann kann ich über die Taskleiste das Fenster nicht mehr vergrößern.

Wie haben Sie dieses Problem gelöst?

Vielen Dank für einen Programmiertipp.

User avatar
Dalai
Power Member
Power Member
Posts: 6970
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Dalai »

Das ist das übliche Verhalten bei der Verwendung modaler Fenster. Das hat übrigens nichts mit der Programmiersprache zu tun sondern mit dem verwendeten Framework, und selbst das nur bedingt, weil man natürlich alles via Windows API nachprogrammieren kann.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

Tahattmeruh
Member
Member
Posts: 169
Joined: 2003-05-16, 13:35 UTC

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Tahattmeruh »

Das weiß ich, deswegen war ja meine Frage wie Herr Ghisler das gelöst hat da ich an einer Stelle in meinem Programm genau dieses Problem habe.

User avatar
HolgerK
Power Member
Power Member
Posts: 5209
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *HolgerK »

Gerade mal mit einer WPF-App ausprobiert.
Sollte an der Stelle, wo der Child-Diaolg geöffnet wird mit folgender Code-Sequence möglich sein:

Code: Select all

	var child = new Window() { Owner = this, Title="Dialog", WindowStyle = WindowStyle.SingleBorderWindow };
	child.StateChanged += (s, e) => this.WindowState = child.WindowState;
	child.ShowDialog();
Dir ist klar, dass das im TC-User-Forum eigentlich reichlich OT ist?

Gruss
Holger
Make our planet great again

User avatar
Dalai
Power Member
Power Member
Posts: 6970
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Dalai »

Delphi stellt in der VCL bereits entsprechende Funktionen bereit, um Fenster modal anzuzeigen (TForm.ShowModal). Da gibt's eigentlich nichts zusätzlich zu lösen, sofern man nichts Spezielles will/braucht (solche Ausnahmen gibt's natürlich immer).

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

Tahattmeruh
Member
Member
Posts: 169
Joined: 2003-05-16, 13:35 UTC

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Tahattmeruh »

Das ist ein Windows-"Problem", weil fast kein Framework kann das.
WPF kann es, wieder was gelernt. Mit WinForms geht es z.B. nicht und das benutzt klassische Windows-Fenster.
Wenn ich das in WinForms mache und das Clientfenster minimiere ist es weg.
In VBA geht es auch nicht. Da kann man die Fenster mit Tricks minimieren wenn sie Modal sind, aber sie können nicht wieder geöffnet werden.

Tahattmeruh
Member
Member
Posts: 169
Joined: 2003-05-16, 13:35 UTC

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Tahattmeruh »

@Dalai: Fenster Modal anzuzueigen war nie das Problem. Das Modale Fenster minimieren und alle dahinter ist das Problem. Das zweite ist dann die minimierten Fenster wieder normal zu bekommen. WPF kann es anscheinend. Die normalen Windows-Fenster können es nicht.

User avatar
HolgerK
Power Member
Power Member
Posts: 5209
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *HolgerK »

Manchmal kann man es sich nicht aussuchen und muss noch System.Windows.Forms.Form anstelle von WPF benutzen, aber gehen sollte das prinzipiell auch.
Man kann sich einen StateChanged-Event aus dem SizeChanged-Event in seinem ChildDialog basteln:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/84b9f614-8e3a-42a1-b003-f94e6fef778a/winforms-windowstate-changed-how-to-detect-this?forum=csharpgeneral
und dann analog zur System.Windows.Window Lösung vorgehen.

Gruss
Holger
Make our planet great again

User avatar
Dalai
Power Member
Power Member
Posts: 6970
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: 1/2 OT: Fenster verkleinern in C# (Parent gleichzeitig mit Child window)

Post by *Dalai »

2Tahattmeruh
Falls es nicht klargeworden ist: Die Delphi VCL kümmert sich auch darum. Wenn ein modales Fenster minimiert wird, werden auch alle Parent-Fenster minimiert. Holt man ein solches Fenster wieder hervor, kommen auch alle Parents mit. Wie ich schon sagte: Bei Delphi muss man da nichts (oder nicht viel) zusätzlich lösen.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups

Post Reply