netlib.narod.ru< Назад | Оглавление | Далее >

Форма подходящего размера

Какой размер у вашей формы? Это не личный вопрос! Когда программа создает форму, форма имеет определенный размер и занимает определенное место на экране. Размер и расположение формы не фиксированы, однако если у формы есть рамка изменяемого размера, пользователь может перетаскивать ее, изменяя размеры формы. Если у формы есть заголовок, пользователь может перетаскивать ее в новое место на экране. Для программы полезно знать размер своей формы. Знать где именно на экране расположена форма не столь полезно, но и нельзя сказать, что совсем не нужно.

У класса Form есть не менее 13 свойств — почти все они унаследованы от класса Control, — которые отражают эту информацию. Эти свойства, кроме двух, можно изменять, и они позволяют программе изменять размер и расположение формы. Мы видели пример таких изменений в программе FormProperties главы 2.

Вот девять свойств (все они унаследованы классом Form от Control), которые показывают размер формы и ее расположение на экране:


Свойства Control (выборочно)



Тип Свойство Доступ Комментарий

Point Location Чтение/запись Относительно экрана
Size Size Чтение/запись Размер всей формы
Rectangle Bounds Чтение/запись Равно Rectangle(Location, Size)
int Width Чтение/запись Равно Size.Width
int Height Чтение/запись Равно Size.Height
int Left Чтение/запись Равно Location.X
int Top Чтение/запись Равно Location.Y
int Right Чтение Равно Location.X + Size.Width
int Bottom Чтение Равно Location.Y + Size.Height


Вообще список свойств, с которыми обычно приходится иметь дело, можно сократить до четырех чисел: координаты х и y левого верхнего угла формы относительно левого верхнего угла монитора, высота и ширина формы. Я полагаю, что единственная причина того, что Right и Bottom доступны только для чтения, состоит в неопределенности того, что должно произойти при присваивании им значений. Что тут прикажете делать: передвигать форму или изменять ее размер?

Хотя вы можете присвоить свойствам Width и Height какие угодно значения, система накладывает определенные ограничения. Ограничение снизу состоит в том, что размеры формы должны быть достаточны для отображения заголовка, содержащего определенный текст. Ограничение сверху: размер формы не может быть больше, чем при развертывании на весь экран.

Однако не делайте так:

  Size.Width *= 2;

Это присваивание значения свойству свойства. По причинам, не доступным пониманию людей, не разрабатывающих компиляторы, это не допускается.

В классе Form определены два дополнительных свойства, относящихся к размеру и расположению:


Свойства Form (выборочно)



Тип Свойство Доступ

Point DesktopLocation Чтение/запись
Rectangle DesktopBounds Чтение/запись


Эти свойства похожи на свойства Location и Bounds, но учитывают панель задач (taskbar) Windows. Рабочий стол (desktop) — это часть экрана, не занятая панелью задач. Если панель задач расположена слева, то DesktopLocation.X будет меньше, чем Location.X; если она сверху, то DesktopLocation.Y будет меньше, чем Location.Y. DesktopBounds определяются по DesktopLocation и стандартному свойству Size, на которое не влияет расположение панели задач.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz