Entwickler-Ecke
WinForms - Vollbildanzeige auf einem "zweitem!" Monitor
C#Thomas - Mo 18.05.09 16:54
Titel: Vollbildanzeige auf einem "zweitem!" Monitor
Liebe Forengemeinte,
ich bin gerade an einem Projekt, welches mir erlauben soll, Daten aus einer SQL-Datenbank
auszulesen und Diese dann auf einem Formular anzuzeigen.
Als Entwicklungsumgebung verwende ich Visual Studio Express in der neuesten Version.
Das Problemchen lautet wie folgt:
An dem Zielrechner auf dem die Applikation laufen soll sind 2 Monitore angeschlossen.
Auf dem ersten Monitor soll die Applikation mit meinetwegen der "frmMain-1" laufen,
welche einige Optionen für die Darstellung der zweiten Form beinhaltet.
Auf dem zweiten Monitor (und das ist wichtig: Es sollte explizit immer der 2. Monitor sein, der im Winodws
angemeldet ist) soll eine weitere Form, nennen wir sie "frmSlave-2" im Vollbild dargestellt werden.
- Die Frage ist nun, wie kann ich garantieren, dass eine Form auf einem bestimmten, in dem Fall dem zweiten
Monitor angezeigt wird?
- Gibt es eine weitere Möglichkeit (ohne Form) einen Vollbildtext auf einem zweiten Monitor auszugeben?
Für die Antworten schonmal vielen Dank
Mit den besten Grüßen in den Abend
Thomas
Th69 - Mo 18.05.09 17:07
Hallo,
mittels der Screen.AllScreens-Eigenschaft erhälst du die Abmessungen aller angeschlosseneen Monitore.
Du brauchst dann nur dein Formular entsprechend positionieren sowie die Größe setzen.
C#Thomas - Mo 18.05.09 17:34
Hallo Th69,
das werde ich gleich mal testen, danke!
Gruß
Thomas
C#Thomas - Mo 18.05.09 17:50
Hervorragend, dein Tipp hat mir folgendes eingebracht:
----
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| int index; int upperBound;
Screen[] screens = Screen.AllScreens; upperBound = screens.GetUpperBound(0);
for (index = 0; index <= upperBound; index++) {
listBox1.Items.Add("Device Name: " + screens[index].DeviceName); listBox1.Items.Add("Bounds: " + screens[index].Bounds.ToString()); listBox1.Items.Add("Type: " + screens[index].GetType().ToString()); listBox1.Items.Add("Working Area: " + screens[index].WorkingArea.ToString()); listBox1.Items.Add("Primary Screen: " + screens[index].Primary.ToString());
} |
----
Damit werden alle angeschlossenen Monitore in 'ner ListBox aufgelistet und sogar angezeigt ob es ein Primary oder Secondary ist. Wenn Du mir noch einen Tipp geben könntest, in welchen Bereich ich die Form verschieben muss, damit Sie wirklich auf dem zweiten ist wäre das Top und mein Problemchen in Luft aufgelöst.
So sieht meine aktuelle Ausgabe aus:
[Edit: Hat sich erledigt, man muss doch nur mal genauer hinschauen ;)] Danke nochmal!
C#Thomas - Mo 18.05.09 18:09
Hier mal der Code zum verschieben einer Form auf den zweiten/ersten Monitor, falls noch jemand so ein Problemchen haben sollte:
C#-Quelltext
1:
| ActiveForm.Location = new Point(screens[1].WorkingArea.X, screens[1].WorkingArea.Y); |
Ralf Jansen - Mo 18.05.09 18:21
Zuweisen der Location sollte eigentlich schon reichen.
C#-Quelltext
1:
| frm.Location = screens[1].WorkingArea.Location; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!