Da die eingebaute Funktionalität zum Positionieren von Formularen in VB.NET nicht immer geeignet ist zu verwenden, versuche ich, mein Sub dazu zu bringen, das zu tun.
Aber ich habe etwas verpasst ...
%Vor%Wie bekomme ich dieses Sub-Formular richtig in der Mitte des Bildschirms oder in einer anderen Form, wenn es definiert ist?
Der Code ist einfach falsch. Es ist auch wichtig, dass dieser Code spät genug läuft, der Konstruktor zu früh ist. Stellen Sie sicher, dass Sie es aus dem Load-Ereignis aufrufen. Zu diesem Zeitpunkt wird das Formular ordnungsgemäß automatisch skaliert und an die Benutzereinstellungen angepasst. Die StartPosition-Eigenschaft spielt dann keine Rolle mehr. Korrektur:
%Vor%Übrigens, einer der wenigen Gründe, den Load Event-Handler tatsächlich zu implementieren.
Ich weiß, das ist ein alter Beitrag, und das beantwortet nicht direkt die Frage, aber für jeden anderen, der über diesen Thread stolpert, kann das Zentrieren einer Form einfach durchgeführt werden, ohne dass Sie Ihre eigene Prozedur schreiben müssen.
Mit System.Windows.Forms.Form.CenterToScreen()
und System.Windows.Forms.Form.CenterToParent()
können Sie das Formular in Bezug auf den Bildschirm oder in Bezug auf das übergeordnete Formular zentrieren, je nachdem, welches Sie benötigen .
Beachten Sie, dass diese Prozeduren MUST aufgerufen werden müssen, bevor das Formular geladen wird. Es empfiehlt sich, sie im Ereignishandler form_load aufzurufen.
BEISPIEL CODE:
%Vor%Dies könnte auch nützlich sein:
%Vor%Sie können auch FormStartPosition.CenterScreen
verwenden Ich hatte das Problem, dass StartPosition = CenterParent
nicht funktionierte. Ich habe es gelöst und das Formular mit .ShowDialog()
anstelle von .Show()
aufgerufen:
Tags und Links vb.net