Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Fenster auf dem zweiten Bildschirm
DiscMaster
myCSharp.de - Member

Avatar #avatar-2602.jpg


Dabei seit:
Beiträge: 316

Themenstarter:

Fenster auf dem zweiten Bildschirm

beantworten | zitieren | melden

Hallo Leute,

Frage: Ich habe ein Programm geschrieben das über ein Eingabe- und ein Ausgabefenster verfügt. Das Ausgabefenster soll auf einem angefügten Bildschirm Maximiert werden. Das habe ich von
Screen.AllScreens[1].WorkingArea
per Width und Height ausgelesen. Die Maße werden für das Fenster übernommen. Aber jetzt ist das Fenster wieder auf dem ersten Bildschirm, wo eigentlich nur das Eingabefenster sein soll.

Wo liegt das Problem, und wie behebe ich es?

Ich benötige so schnell wie möglich Hilfe, danke!

Gruß DiscMaster
"Flache Hierarchien schaffen! Das muss konkret nicht unbedingt etwas bedeuten, kommt aber immer sehr gut an."
Bernd Stromberg
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2.223
Herkunft: Witten

beantworten | zitieren | melden

Hallo DiscMaster,

Leider habe ich keinen zweiten Monitor hier,

aber reicht vieleicht einfach die Position neu zu setzen ? (auf zb 1025 X 1) wenn du 2 1024 auflösungen hast

mfg
private Nachricht | Beiträge des Benutzers
dechavue
myCSharp.de - Member

Avatar #avatar-2999.png


Dabei seit:
Beiträge: 179
Herkunft: Österreich

beantworten | zitieren | melden

Hallo,

vieleicht liegt es daran, dass die Monitore anders verbunden / eingestellt sind, durch eine unglückliche kombination kann es vorkommen, dass auf einem Monitor die Koordinaten negatiev sind. (Ich habe momentan leider kein Programm mit dem ich es ausprobieren könnte, aber als ich es frisch umgestellt hatte, habe ich mit dieser Einstellung auch das eine oder andere Programm aus dem Konzept geworfen .)
Ich weiß nicht obs viel hilft, aber vieleicht kommst du dadurch auf die richtige Idee.

mfg dechavue
Attachments
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Alle Monitore bilden bei Windows eine virtuelle Anzeige.
Die primäre Anzeige (die mit der großen 1) bekommt immer als erstes Koordinaten von 0/0 (links oben) bis [horizontale Auflösung-1]/[vertikale Auflösung-1] (rechts unten).
Alle anderen Monitore können darum angeordnet werden (einfach mal in den Anzeigeneigenschaften Drag&Drop des Sekundärschirms probieren). Dabei wird auch deren "Verknüpfung" zum Primärschirm angezeigt. Prinzipiell gibt es zwei Verknüpfungsarten: Ecke oder Zentrum. Bei der ersten liegen die Ecken aneinander, bei der zweiten die Zentren der entsprechenden Seite.

Diese zusätzlichen Monitore bekommen dann ihrer Position zum Primärschirm entsprechend Koordinaten. Diese können daher auch negativ sein.

Um die Form entsprechend zu positionieren (genauer: um auch Koordinaten zuzulassen, die nicht mit Sicherheit sichtbar sind), muss Form.StartPosition auf Manual gesetzt sein.
private Nachricht | Beiträge des Benutzers
thejudge
myCSharp.de - Member



Dabei seit:
Beiträge: 94
Herkunft: Darmstadt

beantworten | zitieren | melden

hallo,

http://predicatet.blogspot.com/2007/01/show-c-windows-forms-on-dual-monitor.html das hilft dir bestimmt weiter

mfg
If you don't like me for who I am, then you don't like me for who I am, but all you're gonna get, is who I am.
private Nachricht | Beiträge des Benutzers
Borg
myCSharp.de - Member



Dabei seit:
Beiträge: 1.529
Herkunft: Berlin, Germany

beantworten | zitieren | melden

Der oben verlinkte Code ist ja schrecklich!

Aber auch dort steht, dass das ganze Geheimnis in der einfachen Zeile myForm.StartPosition = FormStartPosition.Manual; besteht.
private Nachricht | Beiträge des Benutzers
John Sanson
myCSharp.de - Member

Avatar #avatar-2970.jpg


Dabei seit:
Beiträge: 195
Herkunft: Dinslaken

2. Bildschirm

beantworten | zitieren | melden

Du kannst eine Form auf einen 2. Bildschirm legen, indem du die Breite des ersten überschreitest und anschließend maximierst. Hier ein Beispiel:
Monitor-Modus: DualView
Auflösung von Monitor1: 1024x768
Auflösung von Monitor2: 1024x768



this.Left=1500;     //1024 überschritten
this.WindowState = FormWindowState.Maximized; //und Maximiert
private Nachricht | Beiträge des Benutzers