ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Обратите внимание на то, что первый аргумент конструктора ResourceManager представляет собой полное имя файла *.resx (но без расширения файла). Второй параметр является ссылкой на компоновочный блок, содержащий соответствующий
Исходный код. Проект MyResourcesWinApp размещен в подкаталоге, соответствующем главе 20.
На этом мы завершаем наш обзор возможностей GDI+ и пространств имен System.Drawing. Если вы заинтересованы в дальнейшем исследовании GDI+ (включая поддержку печати), обратитесь к книге Nick Symmonds, GDI+ Programming in C# and VB.NET (Apress, 2002).
Резюме
Аббревиатура GDI+ используется для обозначения ряда связанных пространств имен .NET, используемых для визуализации графических образов на поверхности производных от Control типов. Значительная часть этой главы была посвящена выяснению того, как работать с базовыми объектными типами GDI+ – цветами, шрифтами, графическими изображениями, перьями и кистями, используемыми в совокупности с "всемогущим" типом Graphics. В процессе обсуждения были рассмотрены и некоторые другие возможности GDI+, такие как проверка попадания указателя мыши в заданную область окна и перетаскивание изображений.
В завершение главы был рассмотрен новый формат ресурсов .NET. Как выяснилось, файл *.resx определяет ресурсы в виде XML с помощью пар имен и значений. Этот файл можно обработать с помощью утилиты resgen.exe, чтобы привести его к двоичному формату (*.resources) и затем встроить соответствующие ресурсы в компоновочный блок. Наконец, тип ResourceManager обеспечивает простой способ программного извлечения встроенных ресурсов во время выполнения приложения.
ГЛАВА 21. Использование элементов управления Windows Forms
Эта глава представляет собой краткое руководство по использованию элементов управления, определенных в пространстве имен System.Windows.Forms. В главе 19 вы уже имели возможность поработать с некоторыми элементами управления, размещаемыми в главной форме: это MenuStrip, ToolStrip и StatusStrip. В этой главе мы рассмотрим различные типы, которые обычно размещают в пределах области клиента формы (это, например, Button, MaskedTextBox, WebBrowser, MonthCalendar, TreeView и т.п.). Рассмотрев базовые элементы пользовательского интерфейса, мы затем обсудим процесс создания пользовательских элементов управления Windows Forms, интегрируемых в среду разработки Visual Studio 2005.
После этого мы рассмотрим процесс построения пользовательских диалоговых окон, а также роль наследования форм, которое позволяет создавать иерархии связанных типов Form. В завершение главы обсуждается возможность стыковки и закрепления элементов графического интерфейса и выясняется роль типов FlowControlPanel и TableControlPanel, предлагаемых в .NET 2.0.
Элементы управления Windows Forms
Пространство
Из главы 19 вы узнали, что тип System.Windows.Forms.Control является базовым классом для всех таких элементов. Напомним, что Control обеспечивает возможность обрабатывать события мыши и клавиатуры, задавать физические размеры и позицию элементов в форме с помощью различных свойств (Height, Width, Left, Right, Location и т.п.), манипулировать цветами фона и переднего плана, задавать активный шрифт/курсор и т.д. Кроме того, базовый тип Control определяет члены, контролирующие возможность закрепления и поведение стыковки элемента (объяснения по поводу указанных возможностей будут даны в тексте этой главы позже).
При изучении материала данной главы помните о том, что рассматриваемые здесь элементы управления наследуют большинство своих функциональных возможностей от базового класса Control. Поэтому мы сосредоточимся (более или менее) на уникальных членах этих элементов. Следует понимать, что эта глава не пытается полностью описать абсолютно все члены абсолютно всех элементов управления (это задача документации .NET Framework 2.0 SDK). Однако я уверен, что после завершения изучения материала этой главы у вас не возникнет проблем в понимании тех элементов, которые здесь непосредственно описаны не были.
Замечание. В Windows Forms предлагается целый ряд элементов управления (DataGridView, BindingSource и т.д.), позволяющих отображать содержимое реляционных баз данных. Некоторые из этих элементов управления будут рассмотрены в главе 22 при обсуждении ADO.NET.
Добавление элементов управления в форму вручную
Независимо от того, какой именно элемент управления вы выбираете для размещения в форме, последовательность шагов, которые при этом выполняются, оказывается одной и той же. Во-первых, вы должны определить члены-переменные, представляющие эти элементы управления. Затем, в рамках конструктора формы (или вспомогательного метода, вызванного конструктором), вы должны настроить вид каждого элемента управления, используя доступные свойства, методы и события этого элемента. Наконец (и это самое важное), после установки элемента управления в исходное состояние, вы должны добавить этот элемент к внутренней коллекции элементов управления формы, используя унаследованное свойство Controls. Если вы не сделаете этот заключительный шаг, ваш элемент управления не будет видимым во время выполнения.
Чтобы рассмотреть процесс добавления элементов управления в форму, давайте начнем с построения типа Form без помощи мастеров, используя только текстовый редактор и компилятор командной строки C#. Создайте новый файл C# с именем ControlsByHand.cs и добавьте в этот файл следующий программный код, определяющий новый класс MainWindow.