webentwicklung-frage-antwort-db.com.de

Wie passe ich Windows Form an eine Bildschirmauflösung an?

Ich arbeite an VS 2008 mit C #. Dieser unten stehende Code funktioniert bei mir nicht. Mein Formular wurde in einer Auflösung von 1024 x 768 erstellt.

Unser Kunden-Laptop hat eine Auflösung von 1366 x 768. Um dieses Problem zu lösen, habe ich den folgenden Code im Form Load-Ereignis festgelegt:

this.Location = new Point(0, 0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;

die Größe des Formulars wird jedoch nicht gemäß der Bildschirmauflösung und dem unteren Rand meines Formulars geändert wird ausgeblendet oder ausgeschnitten oder ich vermisse die Bildlaufleiste.

Gibt es eine Möglichkeit, dieses Problem zu lösen? Bitte zeigen Sie mir die Syntax. Danke im Voraus

34
shamim

Kannst du nicht maximiert anfangen?

Setze das System.Windows.Forms.Form.WindowState Eigentum an FormWindowState.Maximized

32
ppiotrowicz

Wenn Sie die Formulargröße programmgesteuert festlegen möchten, setzen Sie die Eigenschaft StartPosition des Formulars auf Manual. Andernfalls stört der Positionierungs- und Bemaßungsalgorithmus des Formulars Ihren. Aus diesem Grund treten bei Ihnen die in Ihrer Frage genannten Probleme auf.

Beispiel: So ändern Sie die Größe des Formulars auf die Hälfte zwischen der ursprünglichen Größe und der Größe des Arbeitsbereichs des Bildschirms. Ich zentriere das Formular auch im Arbeitsbereich:

public MainView()
{
    InitializeComponent();

    // StartPosition was set to FormStartPosition.Manual in the properties window.
    Rectangle screen = Screen.PrimaryScreen.WorkingArea;
    int w = Width >= screen.Width ? screen.Width : (screen.Width + Width) / 2;
    int h = Height >= screen.Height ? screen.Height : (screen.Height + Height) / 2;
    this.Location = new Point((screen.Width - w) / 2, (screen.Height - h) / 2);
    this.Size = new Size(w, h);
}

Beachten Sie, dass die Einstellung von WindowState auf FormWindowState.Maximized Allein die Größe des wiederhergestellten Fensters nicht ändert. So kann das Fenster gut aussehen, solange es maximiert ist, aber wenn es wiederhergestellt wird, können Größe und Position des Fensters immer noch falsch sein. Daher empfehle ich, Größe und Position auch dann festzulegen, wenn Sie das Fenster maximiert öffnen möchten.

Möglicherweise hilft ein maximiertes Formular, oder Sie können dies beim Laden des Formulars manuell tun:

Codeblock

this.Location = new Point(0, 0);

this.Size = Screen.PrimaryScreen.WorkingArea.Size;

Spielen Sie dann mit der Verankerung, damit die untergeordneten Steuerelemente in Ihrem Formular automatisch in die neue Größe Ihres Formulars passen.

Hoffe das hilft,

10
Yoko Zunna

Legen Sie fest, dass die Formulareigenschaft im maximierten Zustand geöffnet wird.

this.WindowState = FormWindowState.Maximized;
7
Bhavik Goyal
int h = Screen.PrimaryScreen.WorkingArea.Height;
int w = Screen.PrimaryScreen.WorkingArea.Width;
this.ClientSize = new Size(w , h);
5
mehrdad

Sie können einfach den Fensterstatus festlegen

this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
4
Niranjan singh

setzen Sie einfach Autoscroll = true für Ihr Windows-Formular (es ist keine gute Lösung, aber hilfreich).

versuchen Sie es auch für panel (Autoscroll property = true)

3
K_Bhosale

Sie können jederzeit festlegen, dass das Fenster maximiert gestartet werden soll. Es sollte dasselbe Ergebnis liefern. Beispiel: this.WindowState = FormWindowState.Maximized;

P.S. Sie können auch versuchen (und ich empfehle dies nicht), die Höhe der Taskleiste zu subtrahieren.

2
PedroC88