Entwickler-Ecke

WinForms - Prüfen auf welchem Bildschirm die Windows.Form liegt


Red2Devil - Sa 05.12.09 17:34
Titel: Prüfen auf welchem Bildschirm die Windows.Form liegt
Hallo,

Habe ein kleines Programm für einen Freund geschrieben.
Aus einem Kontrollfenster heraus werden neue Fenster aufgerufen und können auf Vollbild gestellt werden.
Der Inhalt der Fenster ist variabel, jedoch nach Aufruf statisch in der Größe. Es soll aber immer
mittig des Bildschirms angezeigt werden.


C#-Quelltext
1:
2:
Screen.PrimaryScreen.Bounds.Width;
Screen.PrimaryScreen.Bounds.Heigth;


Mit dieser Abfrage bekomme ich die aktuelle Auflösung des primären Bildschirms raus, jedoch soll es auch möglich sein
die Form auf einem sekundären Bildschirm anzuzeigen, der NICHT die gleiche Auflösung hat.


C#-Quelltext
1:
Screen[] screens = Screen.AllScreens;                    


Mit diesem Array von screens bekomme ich zwar alle Bildschirme in einem Array zurück und kann auch die Auflösung abfragen, jedoch weiß ich nicht, wie
ich prüfen kann, auf welchem Bildschirm die aktuelle Form gerade ist.
Die Form soll also über eine Funktion wissen, ob sie auf dem primären oder einem sekundären Bildschirm liegt und dann diese Auflösung benutzen.

Hoffe jemand kann das Problem verstehen und mir helfen =)

Danke schonmal

MFG
Red2Devil


huuuuuh - Sa 05.12.09 17:49

weiss nich, obs die einfachste variante is, aber du kannst ja die größe der form herrausfinden und nacheinander mir den auflösungen der bildschirme vergleichen (abstand zu rand berrechnen etc.). so sollte es möglich sein den aktuellen bildschirm herrauszufinden...


Christian S. - Sa 05.12.09 19:05

Hallo!

Du kannst die Screen.FromHandle-Methode benutzen und ihr das Handle Deiner Form übergeben. Beachte aber die Beschreibung der Methode, die besagt, dass die Methode denjenigen Bildschirm zurückgibt, der den größten Anteil der Form enthält. Mit anderen Worten: Ist die Form teilweise auf zwei Bildschirmen, ist das Ergebnis für Dich Murks ;-)

Grüße
Christian


Red2Devil - Sa 05.12.09 21:15

Super dankesehr!

Hat super geklappt^^
Wusste doch,dass das irgendwie gehen muss ;)

MFG
Red2Devil