На этом шаге мы начнем рассматривать свойства формы.
Эти свойства могут встречаться у многих компонентов, которые мы будем рассматривать в дальнейшем, поэтому впоследствии будем говорить о них кратко. Все свойства объекта можно посмотреть в разделе Help по данному объекту (надо привыделенном объекте нажать клавишу F1). Перечень свойств формы, отображенных в окне Properties (Свойства), приведен на рисунке 1.
Рис.1. Перечень свойств формы, отображенных в окне Properties (Свойства)
Рассмотрим некоторые свойства формы.
Эта возможность типа Windows Forms позволяет легче создавать, хранить и поддерживать приложения и различные преференции пользователя. С установками, о которых речь пойдет чуть позже, вы сможете не только хранить данные приложения (такие как строки соединения с базой данных), но и специфические данные пользователя, в частности его преференции (специфические установки параметров). Вы сможете создавать новые установки, читать и писать их, привязывать к свойствам ваших форм и определять их до загрузки и сохранения приложения. Фактически аппарат ycтановок приложения - это аппарат параметризации этого приложения, что всегда дает возможность перестройки его без перекомпиляции.
Так что же такое эти установки? Ваши Windows Forms-приложения почти всегда содержат такие данные, которые не желательно хранить в самом приложении, т. к. их изменение влечет за собой перекомпиляцию. Если ваше приложение эксплуатируется не вами, а другим пользователем, то перекомпиляция из-за какой-то мелочи может повлечь за собой его неработоспособность. Ведь пользователь не знает вашей программы и не сможет ее правильно изменить (подстроить), даже если у него имеется код программы, что весьма сомнительно (обычно разработчики поставляют пользователю только исполняемые модули без кода).
Следовательно, такую настроечную информацию желательно хранить в отдельном файле, который подключается к приложению. Если смотреть на этот процесс с точки зрения работы приложения в рамках системы "клиент-сервер", то аппарат установок дает возможность хранить на компьютере клиента как установки клиента, так и установки приложения. В частности вы можете определить установки (т. е. значения заданных величин, влияющих на ход выполнения программы-приложения) для данного свойства, указывая его имя, тип данного и контекст (это создается для приложения или для пользователя). Такие установки не изменяются программой и читаются ею в память автоматически в момент исполнения программы-приложения.
В большинстве случаев программные установки имеют статус "только для чтения" - "read only" - это программная информация и нет необходимости ее изменять в самой программе. И наоборот, пользовательские установки могут и читаться, и быть безопасно измененными в момент исполнения программы.
Установки приложения сохраняются в двух XML-файлах: в файле app.config, который создается во время работы дизайнера форм, т. е. во время проектирования приложения. Формирование этого файла происходит в момент создания первой установки приложения. Другой файл - user.config (этот файл формируется в момент исполнения приложения - когда пользователь изменяет значение любой пользовательской установки).
Установки определяются дизайнером форм заданием свойства ApplicationSettings в окне Properties (Свойства) формы. Когда вы определяете установки, среда программирования автоматически создает специальный управляемый пользователем класс-оболочку, в котором каждая установка связывается со свойством класса.
Как осуществить установки с помощью дизайнера форм? В следующем порядке действий вы выполняете конфигурацию установок и связей, используя редактор свойства для Windows Forms. Когда вы используете этот редактор, то среда программирования генерирует класс-оболочку, происходящий от класса ApplicationSettingsBase, и определяет все ваши установки в качестве свойств класса-оболочки. Чтобы создать новые установки приложения, выберите форму или компонент, чьи свойства хотите связать с новыми установками. Далее требуется:
Рис.2. Добавление нового файла в проект через контекстно-зависимое меню
Рис.3. Добавление файла app.config в проект
Рис.4. Добавленный файл app.config и его содержимое
Рис.5. Файл app.config переименован в app.settings
Раскрыть свойство ApplicationSettings (если слева от него стоит знак "+") и щелкнуть мышью на кнопке с многоточием на подчиненном свойстве PropertyBindings. Откроется диалоговое окно, показанное на рисунке 6.
Рис.6. Диалоговое окно для задания установок приложения
Пример задания установки для свойства FormBorderStyle (стиль окантовки формы) показан на рисунке 6.
Рис.7. Пример задания установки для свойства FormBorderStyle
В результате в проекте появятся 2 файла: app.config и app.settings.
Например, если компонент А имеет такую возможность, то когда вы начнете перемещать мышью некоторое изображение над ним, это изображение выведется на этом компоненте, когда будет отпущена кнопка мыши (изображение "капнет" на поверхность компонента, например, формы).
Автоматическое масштабирование дает возможность форме и расположенным в ней компонентам, сконструированным на одном компьютере с некоторым разрешением вывода (т. е. с фиксированным значением числа точек изображения, которое станет выводиться на единицу поверхности вывода) или с определенным шрифтом, выводиться, соответственно, другом компьютере с другим разрешением или шрифтом.
Например, элементы пользовательского интерфейса, содержащие текст (такие как заголовочные полосы, меню и дугие) полностью зависят от используемого шрифта и могут быть искажены. Это же касается и экранного разрешения. Здесь также возможно искажение экранных изображений на разных компьютерах, если не отрегулировать масштабирование.
Значение свойства выбирается из выпадающего списка, в котором определяется автоматический режим масштабирования для данного компонента.
Рис.8. Список с возможными значениями этого свойства
Например, если выбрать значение Font (шрифт), то автоматическое изменение шрифта будет полезным тогда, когда вы хотите, чтобы форма или компонент растягивались или сокращались в соответствии с размерами шрифта в операционной системе и использовались в случаях, когда их абсолютные размеры не играют роли.
Если выбрано значение Dpi, то эта величина полезна, если вы хотите изменять размеры формы или компонента относительно экрана. Например, вы выводите на экран диаграмму или другую графику и хотите, чтобы это изображение всегда занимало определенный процент экрана.
Если выбрано значение свойства, равное Inherit, то другой компьютер станет наследовать шрифт и разрешение базового компьютера.
На следующем шаге мы продолжим изучение этого вопроса.