2017-11-29 1 views
0

Ich erstelle derzeit eine Windows Forms-App, die mehrere Formulare durchsucht, um verschiedene Bildschirme anzuzeigen. Eine nervige Sache ist, dass, wenn ich von einem Formular zum nächsten wechsel, es das neue Formularfenster ein wenig von dem letzten herunter verschiebt. EX:Verhindern, dass sich das Fensterformular über den Bildschirm bewegt, wenn ein anderes geöffnet wird

form1 
    form2 
      form3 
       form4 

Ich verwende .Hide() und .Show() zwischen den Formen zu wechseln.

Gibt es eine Möglichkeit, dies zu verhindern? Wie in, wenn ich Form2 öffne, kann ich es an genau der Stelle haben, an der Form1 war?

Ich benutze VS2017, wenn das überhaupt hilft.

Antwort

0

Ändern Sie die StartPosition Formen von WindowsDefaultLocation auf manuell und setzen Location in der Konstrukteurs.

+1

Schreiben von dpiAware-Code ist heute ziemlich wichtig. Dies im Konstruktor zu tun ist ziemlich fraglich, Sie können die tatsächliche Größe des Fensters noch nicht kennen. Einer der wenigen guten Gründe, das Load-Ereignis zu verwenden, ist die StartPosition-Eigenschaft nicht wichtig. –

0

Es gibt keine Möglichkeit, dies zu verhindern, da es standardmäßig so eingestellt ist, dass es dem Benutzer signalisiert, dass er einen neuen Benutzer öffnet. Wenn es direkt oben angezeigt wird, kann es den Benutzer verwirren, da er denkt, dass das vorherige Fenster zerstört/entfernt wurde.

Sie können jederzeit die Position auf Ihrem eigenen obwohl festgelegt, mit dem folgenden Beitrag: Setting form's location when calling Form.Show()

ConnectingForm CF = new ConnectingForm(); 
CF.StartPosition = FormStartPosition.CenterParent; 
CF.Show(this); 
Verwandte Themen