C # Programmgesteuertes Unformatieren des Formulars [duplizieren]

7

Wie nehme ich ein Formular, das momentan minimiert ist, und stelle es in seinen vorherigen Zustand zurück. Ich kann keinen Weg finden zu bestimmen, ob sein vorheriges WindowState % war Normal oder Maximized ; aber ich weiß, dass die Informationen irgendwo gespeichert werden müssen, weil Windows kein Problem mit Apps in der Taskleiste hat.

    
Dan Neely 10.12.2010, 16:01
quelle

4 Antworten

8

Dafür gibt es keine verwaltete API. Der Weg dazu ist PInvoke GetWindowPlacement und prüfen Sie auf WPF_RESTORETOMAXIMIZED .

Weitere Informationen finden Sie in diesem Microsoft-HowT (in dem die Technik in VB demonstriert wird).

In C # wäre dies:

%Vor%     
Reed Copsey 10.12.2010, 16:06
quelle
7
%Vor%

Sie haben auch:

%Vor%

Ah, ich habe die Frage falsch verstanden:

Wiederherstellen von WindowState von Minimized sollte das sein, wonach Sie suchen. Es besagt, dass Sie das Verhalten der Taskleiste wie folgt nachahmen können:

%Vor%     
Chuck Callebs 10.12.2010 16:03
quelle
3

Sie können die Änderungen des Fensterstatus durch das Resize-Ereignis verfolgen. So:

%Vor%     
Hans Passant 10.12.2010 18:52
quelle
1

Wenn Sie den vorherigen Zustand bei jeder Änderung speichern (maximieren / minimieren) möchten, müssen Sie sich an das Ereignis SizeChanged gemäß diesen Beitrag auf MSDN . Sie können das WindowState dort abrufen und speichern.

    
Daniel DiPaolo 10.12.2010 16:05
quelle

Tags und Links