2016-07-24 31 views
-1

Ich mache derzeit eine randlose Formular mit einem DoubleClick-Ereignis, um die Form zu maximieren. Aber ich erkannte, dass die Form auf den beiden anderen Bildschirmen nicht maximiert werden würde, nur in meiner Hauptmitte. Also mein Code ist zur Zeit:Maximieren randlosen Formular mit mehreren Monitoren C#

private void Form1_DoubleClick(object sender, EventArgs e) 
{ 
    if ((this.Height == Screen.PrimaryScreen.WorkingArea.Height) && (this.Width == Screen.PrimaryScreen.WorkingArea.Width)) 
    { 
     this.Width = 534; 
     this.Height = 600; 
     CenterToScreen(); 
    } 
    else 
    { 
     this.Height = Screen.PrimaryScreen.WorkingArea.Height; 
     this.Width = Screen.PrimaryScreen.WorkingArea.Width; 
     this.Location = Screen.PrimaryScreen.WorkingArea.Location; 
    } 
} 

Es seltsam aussehen könnte, aber ich verwende es nicht in der Taskleiste zu decken. Ich brauche einen Code wie diesen, um es an die Seite anzudocken, und es zu berechnen, wo das Formular sein sollte. Sieht so aus: half right screen dock Wenn ich auf eine dieser 9 Tasten klicke, wird der Bildschirm an verschiedenen Stellen des Bildschirms angedockt. In der Ecke, der Hälfte des Bildschirms oder in der Mitte.

Ich versuchte mit einem Code, wo das Formular erkennen würde, auf welchem ​​Bildschirm es war, und das wieder zu verwenden, um das Formular auf diesem Bildschirm zu maximieren, aber ich habe eine Reihe von roten Linien, und es hat am Ende nicht funktioniert .

Ich habe 3 Monitore.

Bitte helfen.

Antwort

0

Sie haben es auf den primären Bildschirm festgeschrieben, den Bildschirm mit der Taskleiste. Um anderen Bildschirmen den Bildschirm zu ermöglichen, wird das Formular gerade angepasst.

private void Form1_DoubleClick(object sender, EventArgs e) 
{ 
    if ((this.Height == Screen.FromControl(this).WorkingArea.Height) && (this.Width == Screen.FromControl(this).WorkingArea.Width)) 
    { 
     this.Width = 534; 
     this.Height = 600; 
     CenterToScreen(); 
    } 
    else 
    { 
     this.Height = Screen.FromControl(this).WorkingArea.Height; 
     this.Width = Screen.FromControl(this).WorkingArea.Width; 
     this.Location = Screen.FromControl(this).WorkingArea.Location; 
    } 
} 
+0

Es funktionierte, ich habe den Code vorher gesehen, aber ich wusste nicht, wie man es einfügt. Danke – KrisPus