Laden...

Fenster auf dem zweiten Bildschirm

Letzter Beitrag vor 17 Jahren 7 Posts 2.040 Views
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

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

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

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.

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.

Der oben verlinkte Code ist ja schrecklich!

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

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