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 | < Назад | Оглавление | Далее > |