Получение размера формы Windows - PullRequest
5 голосов
/ 30 октября 2011

Я создаю приложение Windows Forms.Как мне зафиксировать размер формы окна?

В настоящее время у меня есть что-то похожее на мой код:

PictureBox display = new PictureBox();
display.Width = 360;
display.Height = 290;
this.Controls.Add(display);
display.Image = bmp;

Однако размер моего дисплея жестко запрограммирован вконкретное значение.

Я знаю, что если я хочу нарисовать квадрат, который изменяет размеры, я могу использовать что-то вроде этого:

private Rectangle PlotArea;
private int offset = 30;
protected override void OnPaint(PaintEventArgs e)
{
    Graphics g = e.Graphics;

    //// Calculate the location and size of the plot area
    //// within which we want to draw the graphics:

    Rectangle ChartArea = ClientRectangle;
    PlotArea = new Rectangle(ChartArea.Location, ChartArea.Size);

    PlotArea.Inflate(-offset, -offset);

    Draw PlotArea:
    g.DrawRectangle(Pens.Black, PlotArea);
}

Есть ли способ для меня использовать первый методи получить размер формы для высоты и ширины?

Я пробовал следующий код, но он не работает ...

PictureBox display = new PictureBox();
display.Width = ClientRectangle.Y;
display.Height = ClientRectangle.X;
this.Controls.Add(display);
display.Image = bmp;

Ответы [ 4 ]

11 голосов
/ 29 июля 2013

Для Получение размера формы Windows :

int formHeight = this.Height;
int formWidth = this.Width;
7 голосов
/ 30 октября 2011
    PictureBox display = new PictureBox();
    display.Width = ClientRectangle.Width;
    display.Height = ClientRectangle.Height;
    this.Controls.Add(display);
    display.Image = bmp;

При изменении размера окна:

private void Form1_Resize(object sender, System.EventArgs e)
{
   Control control = (Control)sender;
   // set the PictureBox width and heigh here using control.Size.Height 
   // and control.Size.Width
}
4 голосов
/ 30 октября 2011

Вы хотите установить Dock = DockStyle.Fill, чтобы прикрепить элемент управления для заполнения его родителя.

2 голосов
/ 30 октября 2011

Установите значение ClientRectangle.Width.

...