8 Stimmen

Verschieben Sie das Formular auf den angegebenen Bildschirm.

Ich versuche herauszufinden, wie ich ein spezifiziertes System.Windows.Forms.Form auf einen anderen Bildschirm als den primären verschieben kann. Ich habe eine ComboBox mit einer Liste der verfügbaren Bildschirme, auf denen der Benutzer auswählen kann, welchen Bildschirm er bevorzugt, und meine Anwendung soll eines ihrer Fenster auf diesen Bildschirm verschieben.

Ich habe nur einen Bildschirm auf meinem Laptop und keinen externen Monitor, daher bietet die ComboBox auf meinem Computer nur eine Option an. Ich denke, dass es ausreichen würde, das gewünschte Fenster zu minimieren, die linke obere Ecke in die Mitte der Grenzen des ausgewählten Bildschirms zu verschieben und es zu maximieren, oder? Ich kann es einfach nicht testen. Ist das ein guter Weg?

Vielen Dank im Voraus!

8voto

pennyrave Punkte 730

Hier ist, was ich gemacht habe, als einfacher Test...

Ich habe eine einfache Wrapper-Klasse hinzugefügt, damit ich ändern konnte, was beim Aufruf von ToString passiert (Ich wollte nur den Namen in der Dropdown-Liste sehen)

private class ScreenObj
{
    public Screen screen = null;

    public ScreenObj(Screen scr)
    {
        screen = scr;
    }

    public override string ToString()
    {
        return screen.DeviceName;
    }
}

Im Formular-Ladeereignis habe ich dies hinzugefügt:

foreach(Screen screen in Screen.AllScreens)
{
     cboScreens.Items.Add(new ScreenObj(screen));
}

Und für das ausgewählte Indexänderungsereignis der Dropdown-Liste hatte ich dies:

private void cboScreens_SelectedIndexChanged(object sender, EventArgs e)
{
    object o = cboScreens.SelectedItem;
    if(null == o)
        return;

    ScreenObj scrObj = o as ScreenObj;
    if(null == scrObj)
        return;

    Point p = new Point();

    p.X = scrObj.screen.WorkingArea.Left;
    p.Y = scrObj.screen.WorkingArea.Top;

    this.Location = p;
}

Es hat das Formular in die obere linke Ecke jeder meiner Bildschirme verschoben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X