2010-05-18 14 views
18

Jak utworzyć środek formularza panelu, nawet jeśli rozmiar formularza zostanie zmieniony. Korzystanie z aplikacji okien C#Jak zrobić centrum formularza w panelu?

+0

Chcesz panel rosną i kurczą się z formą? Lub zachować oryginalny rozmiar? –

+0

@Binary Worrier, powinien w oryginalnym rozmiarze. Ale powinien być środkiem formy w zależności od wielkości formularza. – Anuya

Odpowiedz

36

Umieść panel na środku formularza, używając projektanta, a następnie wyczyść właściwość Anchor, aby nie była zakotwiczona do żadnej krawędzi. Dzięki temu będzie on wyśrodkowany po zmianie rozmiaru formularza, bez zmiany rozmiaru samego panelu.

Jeśli z jakiegoś powodu, trzeba będzie umieścić panel w kodzie (w zależności od rzeczy, które dzieje się podczas obciążenia formularza na przykład) można zrobić coś takiego:

// code for initializing the panel and setting 
// its size goes here 

_thePanel.Location = new Point(
    this.ClientSize.Width/2 - _thePanel.Size.Width/2, 
    this.ClientSize.Height/2 - _thePanel.Size.Height/2); 
_thePanel.Anchor = AnchorStyles.None; 

To powinno zająć większość scenariuszy, wyobrażam sobie.

+0

Mój panel zawiera wiele elementów sterujących. Ta aplikacja będzie działać w wielu systemach, w których rozdzielczość jest różna. W takim przypadku pozycja panelu jest różna dla różnych systemów. – Anuya

+0

@karthink: zobacz zaktualizowaną odpowiedź. –

+0

Doskonały! Nie miałem pojęcia, że ​​możesz całkowicie usunąć kotwice. –

3

ustawić jego właściwości kotwy Brak:

this.panel1.Anchor = System.Windows.Forms.AnchorStyles.None; 
0
Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint 
    Panel1.Location = New Point(ClientSize.Width/2 - Panel1.Size.Width/2, ClientSize.Height/2 - Panel1.Size.Height/2) 
    Panel1.Anchor = AnchorStyles.None 
End Sub 
+2

Należy pamiętać, że odradzane są tylko odpowiedzi kodu. Zawsze dostarczaj trochę informacji na ten temat! – GhostCat

Powiązane problemy