Как мне отцентрировать верхнюю часть экрана в C ++ WinForm? - PullRequest
0 голосов
/ 02 марта 2012

Я пытаюсь центрировать свою родительскую форму в верхней части экрана, но она показывает только центральный экран и центральный родительский элемент, но ни один из центров в верхней части экрана. Когда я попробовал Google, он предоставил мне множество результатов, содержащих самые верхние, но меня не интересуют самые верхние функциональные возможности. Я хочу, чтобы он находился в верхней части экрана, как в положении 0, а не во всех окнах, и я не могу найти правильные параметры. *

Кто-нибудь сталкивался с методом для этого?

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Вам нужно будет использовать Location свойство Form.

Вот простой пример, который сместит форму до Y = 0:

void Form1_Load( object sender, EventArgs e )
{
    this.Location = new Point( this.Location.X, 0 );
}

Редактировать: Вот пример того, как форма будет централизована в верхней части экрана.

void Form1_Load( object sender, EventArgs e )
{
    int x = (Screen.PrimaryScreen.Bounds.Width - this.Width) / 2;
    this.Location = new Point( x, 0 );
}

Примечание:

  • Этот пример для WinForm C #.
  • Причина, о которой я упоминаю, заключается в том, что ваш заголовок относится к C++ и WinForms, которые не смешиваются.
    Либо вы ссылаетесь на C # WinForms, либо на C ++ / CLI WinForms (I Предположим, вы не имели в виду C ++ MFC Form).
0 голосов
/ 02 марта 2012

Вот способ сделать это:

public static class FormExtensions
{
    public static void CentreTop(this Form form)
    {
        form.Location = new Point((Screen.PrimaryScreen.Bounds.Width - form.Width) / 2, 0);
    }
}

и используется в контексте:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            this.StartPosition = FormStartPosition.Manual;

            this.Resize += Reposition;
            this.Move += Reposition;
        }

        private void Reposition(object sender, EventArgs e)
        {
            this.CentreTop();      
        } 
    }

Вы можете добавить некоторую логику о том, на каком экране центрировать, если вы не хотите всегда использовать PrimaryScreen.

...