Иллюстрированный самоучитель по Visual Basic .NET

Формы Windows, графический вывод и печать

  • Немного истории

    Почти во всех материалах по .NET-программированию, публикуемых в журналах и Интернете, основное внимание уделяется web-службам, использованию браузера как платформы программирования, ASP.NET и другим темам, так или иначе связанным с Web.
  • Дизайнер форм

    Программисты VB6 легко привыкают к особенностям работы с формами и элементами в VS.NET IDE. В вашем распоряжении оказывается пара новых (притом весьма полезных) инструментов, кратко описанных далее, однако общие принципы работы с панелью элементов (toolbox) почти не изменились.
  • Сохранение пропорций: свойства Anchor и Dock. Меню Tab Order.

    В прежних версиях VB6 случайное изменение размеров формы приводило к тому, что все старания по размещению элементов на стадии конструирования шли прахом. Чтобы решить эту проблему, программисту приходилось либо самостоятельно программировать масштабирование формы, либо тратиться на специальный элемент управления.
  • Снова о простой программе

    В главе 1 был приведен довольно сложный код Windows-приложения, автоматически сгенерированный IDE. Приложение выполняло простейшую функцию – оно реагировало на нажатие кнопки. Тогда же мы пообещали, что вскоре вы поймете, как работает эта программа.
  • Свойства форм

    Ограниченный объем книги не позволяет нам рассмотреть все свойства класса Form, но мы хотим выделить существенные различия между поведением форм в прежних версиях VB и VB.NET. Одно из самых принципиальных изменений связано с использованием шрифтов.
  • Элементы меню и новый редактор меню Visual Studio. Контекстные меню.

    Хотя визуальное конструирование форм в книге почти не рассматривается, мы просто не могли не упомянуть новый редактор меню. Программисты VB уже давно ждали чего-то подобного. Впрочем, при всем удобстве нового редактора вы извлечете из него максимум пользы лишь при полном понимании кода, сгенерированного IDE. | Построить меню в редакторе меню (Menu Editor) несложно.
  • Формы MDI

    В прежних версиях VB при программировании приложений с интерфейсом MDI (Multiple Document Interface) родительская форма MDI выбиралась на стадии конструирования. В .NET эта задача решается иначе – свойству IsMdiContainer формы задается значение True.
  • Диалоговые формы и диалоговые окна. ColorDialog. FontDialog. FileDialog. Создание диалоговых окон.

    В .NET Framework включена поддержка стандартных диалоговых окон; соответствующие элементы расположены в нижней части панели элементов (рис. 8. 14). | Рис. 8.14. Стандартные диалоговые окна на панели элементов | Элементы диалоговых окон обладают различными свойствами, управляющими их поведением.
  • Размещение элементов на форме во время выполнения

    До выхода VB6 существовал лишь один способ размещения элементов на форме во время выполнения программы – массивы элементов. В VB6 появился более удобный режим динамического добавления элементов, но и в этом случае не обходилось без проблем с обработкой событий для добавленных элементов.
  • Наследование форм. Построение нестандартных элементов на базе наследования.

    Прежде всего следует сказать, что "визуальное наследование", часто упоминаемое в рекламных материалах по VB.NET, существует лишь в больном воображении специалистов по маркетингу. На самом деле речь идет о том, что формы, созданные в программе, могут использоваться как основа для определения новых форм посредством наследования.
  • Переопределение события

    Начнем с переопределения событий базового класса. Например, событие OnChange поможет предотвратить ввод в поле всего, что не является целым числом.
  • Добавление новых событий. Добавление новых свойств.

    Добавить поддержку нового события в элемент ничуть не сложнее, чем включить обработчик события в класс (эта тема рассматривалась в главе 6). Предположим, каждый раз, когда пользователь вводит нечто отличное от положительного целого числа, элемент должен инициировать событие BadDataEntered.
  • Иерархия пространства имен System.Windows.Forms

    Рассмотрев простейшие возможности использования пространства имен Windows.Forms на конкретных примерах, мы переходим к иерархии классов, показанной на рис. 8.20. | Диаграмма выглядит весьма устрашающе, но мы уделим основное внимание главной линии наследования: | System.ComponentModel.Component > Control | Из рис. 8.20 видно, что классы форм и элементов являются производными от класса Control.
  • Средства базового класса Control. События клавиатуры. События проверки.

    Класс Control содержит более 300 членов, и описать их все (или хотя бы большую часть) в одной главе просто невозможно. Следовательно, вам все равно придется обратиться к электронной документации [Кстати говоря, пакет форм Windows автоматически опознает операции с колесом мыши и обеспечивает прокрутку формы/элемента там, где это имеет смысл.
  • Графика: GDI+

    Графическое программирование в .NET Framework полностью отличается от всего, что было реализовано в прежних версиях VB. Знакомые графические команды (частично позаимствованные еще из QuickBasic) исчезли.
  • Простейший вывод

    Рассмотрим очень простой пример графического вывода. Следующая программа выводит растровый файл sample.bmp (находящийся в каталоге \bin решения) в левом верхнем углу формы: | Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) | MyBase.OnPaint(e) | Dim g As Graphics | g = e.Graphics() | g.Draw!mage(New Bitmap("sample.bmp"). 0.
  • Вывод текста

    Метод DrawString объекта Graphics предназначен для вывода текста. При вызове этого метода задается объект шрифта, цвет, кисть и начальная точка вывода. Например, следующий фрагмент выводит текст "Hello World" – в современных книгах по программированию это превратилось в традицию (рис. 8.23).
  • Пример: вывод всех шрифтов в системе

    Для демонстрации вывода текста была написана программа, которая воспроизводит в графическом поле все установленные шрифты с указанием имен (попутно мы столкнулись с проблемой, описанной в конце раздела). Программа состоит из нестандартного элемента и формы с прокруткой (рис. 8.24). | Рис. 8.24.
  • Печать

    Печать в .NET – дело непростое, однако богатство возможностей окупает все хлопоты. В этом разделе мы подробно опишем процесс печати одной страницы (в основном на примере автоматически сгенерированного кода), а затем покажем, как напечатать несколько страниц.
  • Многостраничный вывод. О классе PrintPageEventArgs.

    Процесс многостраничной печати основан на небольшой хитрости: если процедура обработки события PrintPage задает свойству HasMorePages объекта PrintPageEventArgs значение True, то объект PrintDocument узнает о наличии дополнительных страниц для печати и автоматически инициирует заново событие PagePrint. | Проблемы, возникающие при многостраничной печати, имеют мало общего с самой печатью.
  • Элемент PrintDialog и конфигурация печати. Самостоятельное программирование печати.

    Пользователь программы должен иметь возможность выбрать принтер и внести другие изменения в конфигурацию печати. Такую возможность предоставляет элемент PrintDialog.
  • Предварительный просмотр

    Печать простейших документов в VB.NET требует несколько больших усилий, чем в VB6, зато режим предварительного просмотра реализуется гораздо проще. Для этого от вас потребуется лишь назначить объект PrintDocument свойству Document экземпляра PrintPreviewDialog.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.