Może nie być całkowicie adekwatne do pytania. Ale może może komuś pomóc.
Środkowy ekran nie działa dla mnie. Powodem było to, że dynamicznie dodawałem kontrolki do formularza. Technicznie rzecz biorąc, kiedy to wyśrodkowane, było poprawne, na podstawie formularza przed dodaniem kontrolek.
Oto moje rozwiązanie. (Powinien działać w obu scenariuszach)
int x = Screen.PrimaryScreen.Bounds.Width - this.PreferredSize.Width;
int y = Screen.PrimaryScreen.Bounds.Height - this.PreferredSize.Height;
this.Location = new Point(x / 2, y / 2);
Zauważysz więc, że używam „PreferredSize” zamiast tylko wysokości / szerokości. Preferowany rozmiar będzie przechowywał wartość formularza po dodaniu kontrolek. Gdzie nie ma wysokości / szerokości.
Mam nadzieję, że to komuś pomoże.
Twoje zdrowie