Laden...

Fenster auf dem zweiten Bildschirm

Erstellt von DiscMaster vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.008 Views
DiscMaster Themenstarter:in
316 Beiträge seit 2006
vor 17 Jahren
Fenster auf dem zweiten Bildschirm

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

2.223 Beiträge seit 2005
vor 17 Jahren

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

179 Beiträge seit 2006
vor 17 Jahren

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

B
1.529 Beiträge seit 2006
vor 17 Jahren

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.

T
94 Beiträge seit 2006
vor 17 Jahren

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.

B
1.529 Beiträge seit 2006
vor 17 Jahren

Der oben verlinkte Code ist ja schrecklich!

Aber auch dort steht, dass das ganze Geheimnis in der einfachen Zeile myForm.StartPosition = FormStartPosition.Manual; besteht.

195 Beiträge seit 2006
vor 17 Jahren
2. Bildschirm

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