Подтвердить что ты не робот

Как получить размер высоты заголовка формы Winforms Form?

Итак, если это инструментальная панель или минимизируемая форма, я хочу иметь возможность получить ее высоту программно.

Возможно ли это? Если да, то как?

4b9b3361

Ответ 1

Вы можете определить высоту заголовка как для окон инструментов, так и для обычных форм, используя:

Rectangle screenRectangle=RectangleToScreen(this.ClientRectangle);

int titleHeight = screenRectangle.Top - this.Top;

Где 'this' - ваша форма.

ClientRectangle возвращает границы клиентской области вашей формы. RectangleToScreen преобразует это в координаты экрана, которые являются той же системой координат, что и расположение экрана формы.

Ответ 2

Существует дополнительная морщина, если ваша форма является видом в приложении MDI. В этом случае RectangleToScreen (this.ClientRectangle) возвращает координаты относительно не самой Формы (как и следовало ожидать), но по отношению к MainForm, в которой размещен элемент управления MDIClient, на котором размещена форма.

Вы можете это объяснить

Point pnt = new Point(0, 0);
Point corner = this.PointToScreen(pnt); // upper left in MainFrame coordinates
Point origin = this.Parent.PointToScreen(pnt); // MDIClient upperleft in MainFrame coordinates
int titleBarHeight = corner.Y - origin.Y - this.Location.Y;

Ответ 3

Это даст вам TitleBarsize:

form.ClientRectangle.Height - form.Height;