Laden...

Problem mit Hidden Form

Erstellt von capcom vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.088 Views
C
capcom Themenstarter:in
103 Beiträge seit 2007
vor 16 Jahren
Problem mit Hidden Form

Hallo Leute,

ich hoffe, ich bring hier nicht ein Thema nochmal auf den Tisch, das schon irgendwo erläutert wurde. Ich habe nach dem Thema schon gesucht, und einige ähnliche Threads entdeckt, aber nichts was sich speziell hiermit befasst hätte:

Es geht um Forms, die mittels Hide() versteckt sind. Ich habe das Problem, dass solche Forms anscheinend im unsichtbaren Zustand nicht auf Änderungen an speziellen Eigenschaften reagieren. Beispielsweise ist es mir nicht gelungen, eine unsichtbare Form über die Top- und Left-Werte an eine andere Stelle des Bildschirms zu verschieben, oder ein minimiertes Formular vor dem Show() zunächst wieder auf seine Normalgröße zu bringen. Das funktioniert erst, nachdem die Show()-Methode gelaufen ist. Dies hat in meinem Programm derzeit noch einige unschöne Flacker-Effekte zur Folge.

Dies hier möchte ich gern in eben dieser Abfolge machen:
Form minimieren
Form verstecken
...
...

Form auf normale Größe bringen
Form evtl noch auf dem Bildschirm verschieben, z.B. in die Bildmitte
Form anzeigen

Bisher klappts nur so:
Form minimieren
Form verstecken
...
Form anzeigen
Form auf normale Größe bringen (ab hier Flacker-Effekte)
Form evtl noch auf dem Bildschirm verschieben, z.B. in die Bildmitte

Ist bei mir jetzt kein Weltuntergang und vermutlich auch eher banal, aber mich würde einfach interessieren, wie es richtig gemacht werden muss, damit es geht. Vielleicht geht es hier ja auch noch dem Einen oder Anderen ähnlich, der auch schon sowas hatte 🙂

Sollte ich dieses Thema beim suchen übersehen haben, bitte macht Euch keine Umstände und schreibt einfach kurz nen Link zum entsprechenden Thread. Ich will hier niemandem unnötig Arbeit machen 🙂

Freundliche Grüße,
capcom

P
992 Beiträge seit 2007
vor 16 Jahren

Hallo capcom,

wenn du das Form nicht minimierst, und mit Form.Location die neue Position setzt, dann geht es.

Gelöschter Account
vor 16 Jahren

ja das hat er bereits erwähnt. aber er möchte das es geht wenn die form minimiert ist.

915 Beiträge seit 2006
vor 16 Jahren

Hrm, kann es mal über die Win32 API Funktion SetWindowPos versuchen die Location zu ändern. Glaube da konnte man die Rect bzw. position des Wnd's verschieben während es minimiert und hidden war.


[DllImport("user32.dll", SetLastError=true)]
private static extern bool SetWindowPos(IntPtr hwnd, int hwnd2, int x, int y, int cx, int cy, int uFlags);

Ähm, hab sowas ja grade selbst geschrieben für nen PopUp Fenster... hust geht definitiv 😉

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

C
capcom Themenstarter:in
103 Beiträge seit 2007
vor 16 Jahren

Hallo,

danke erstmal allen für die Beiträge.
Ich dachte eigentlich nur daß ich hier irgendne Kleinigkeit verkehrt mache, weil ich z.B. mit VFP Forms problemlos auch alles machen kann, wenn sie minimiert, etc sind. Aber wenn ich dazu Windows bemühen muss, scheint sowas wie ich eigentlich sonst problemlos machen konnte in C# gar nicht vorgesehen zu sein?

Ich werde das mal mit dem DLLImport probieren.

Danke und freundliche Grüße,
capcom