piątek, 4 stycznia 2013

C#: centrowanie formularza Win Forms

Typowym zagadnieniem przy tworzeniu okienkowej aplikacji w środowisku okienkowym jest pozycjonowanie nowego okna. Istnieje co najmniej parę opracowań na temat tego, jaką pozycję na start przyjąć. Ten post dotyczy etapu późniejszego a dokładniej ustawienia pozycji okna. Najbardziej skupię się na typowej pozycji: centrum ekranu.

C# pozwala nam na ustawienie lokacji każdego elementu "z palca". Wystarczy ustawić pole Location dla dowolnego elementu GUI. Możemy zrobić to także dla formularza czy okna dialogowego. Niestety jest to nieco nadużywane. Nie zawsze jest potrzeba wyliczać punkt.

Przykładowo dla umieszczenia na środku ekranu może nam się zdarzyć spotkać taki oto kod w aplikacji:

form.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width/2 - form.Width/2, Screen.PrimaryScreen.WorkingArea.Height/2 - form.Width/2);
Jest tu jak widać "sporo" liczenia, jawne tworzenie nowego obiektu punktu (raz to niby nie kosztuje, ale zawsze) i jest to pozornie skomplikowane. C# pozwala na ustawienie startowej lokalizacji o wiele prościej:

form.StartPosition = FormStartPosition.CenterScreen;
Ustawienie własności StartPosition przed pokazaniem formularza przy pomocy Show() czy ShowDialog() pozwala na poprawne ustawienie lokalizacji na środku ekranu. Proponuję więc korzystać z tej właściwości klasy Form, szczególnie, że pozwala ona także na ustawienie na środku parenta.

Zwykle używamy standardowych lokalizacji jakie daje opisana właściwość. Właściwość Location przydaje się dla formularza niezwykle rzadko. Możemy ustawić pozycję startową tak, aby system operacyjny ustawił go w domyślnej lokalizacji i jest to generalnie najszybsze. Jeśli ktoś się oczywiście przejmuje szybkością aplikacji pisząc w C# ;).

Czytaj też:

Brak komentarzy:

Prześlij komentarz