|
Программирование >> Обработка исключительных ситуаций
342 Глава 14. Введение в программирование под Windows рамкой (BorderStyle = FixedSingle). Вот как выглядят обработчики событий для пунктов меню: private void menuIteml Click( object sender, EventArgs e ) Form2 f = new Form2(); создание экземпляра класса окна if ( f.ShowDialogO == DialogResult.OK ) отображение окна labell.Text = f.Info; private void menuItem2 Click( object sender, EventArgs e ) CloseO; закрытие главного окна Как видите, для отображения диалогового окна следует создать экземпляр объекта соответствующей формы, а затем вызвать для этого объекта метод ShowDialog. При подтверждении ввода текст пользователя можно получить с помощью свойства Info, доступного только для чтения. При необходимости передавать информацию не только из диалогового окна, но и в него, можно добавить в описание свойства часть set. ПРИМЕЧАНИЕ- Следует различать процесс создания формы - объекта класса Foim или его наследника- от процесса вывода формы на экран. Форма, как и любой объект, создается при выполнении операции new с вызовом конструктора. Для вывода формы служит метод Show или ShowDi al од класса Form, вызываемый соответствующим объектом. Для скрытия формы используется метод Hide. Фактически, методы Sh и Hide изменяют свойство Visible объекта. Разница межжду скрытием формы методом Hi de и ее закрытием методом CI ose состоит в том, что первый из них делает форму невидимой, но не изменяет сам объект, а метод CI ose делает объект недоступным и закрывает все его ресурсы. Класс Application Класс Application, описанный в пространстве имен System.Windows.Forms, содержит статические свойства, методы и события, предназначенные для управления приложением в целом и получения его общих характеристик. Наиболее важные элементы класса Application перечислены в табл. 14.11. Таблица 14.11. Основные элементы класса Application Элемент класса Тип Описание AddMessageFiIter, Методы Позволяют перехватывать сообщения и выполнять RemoveMessageFi Iter с этими сообщениями нужные предварительные действия. Для того чтобы добавить фильтр сообщений, необходимо указать класс, реализующий интерфейс IMessageFiIter 1 Подробности см. в [27].
Многие свойства класса Appl i cati on позволяют получить метаданные сборки (например, номер версии или имя компании), не используя типы пространства имен System.Reflection. Программист не часто работает непосредственно с классом Application, поскольку большую часть необходимого кода среда формирует автоматически. Глава 14. Введение в программирование под Windows Краткое введение в графику Для вывода линий, геометрических фигур, текста и изображений необходимо создать экземпляр класса Graphics, описанного в пространстве имен System.Drawing. Существуют различные способы создания этого объекта. Первый способ состоит в том, что ссылку на объект Graphics получают из параметра PaintEventArgs, передаваемого в обработчик события Paint, возникающего при необходимости прорисовки формы или элемента управления: private void Forml Paint( object sender, PaintEventArgs e ) { Graphics g = e.Graphics; использование объекта Второй способ - использование метода CreateGraphics, описанного в классах формы и элемента управления: Graphics g; g = this.CreateGraphicsO; Третий способ - создание объекта с помощью объекта-потомка Image. Этот способ используется для изменения существующего изображения: Bitmap bm = nw Bitmap( d:\\picture.bmp ); Graphics g = Graphics.FromImage( bm ); После создания объекта типа Graphics его можно применять для вывода линий, геометрических фигур, текста и изображений. Основными объектами, которые при этом используются, являются объекты классов: Реп - рисование линий и контуров геометрических фигур; Brush - заполнение областей; Font - вывод текста; Col or - цвет. В листинге 14.6 представлен код приложения, в котором на форму в1водятся линия, эллипс и текст. Вид формы приведен на рис. 14.13. Листинг 14.6. Работа с графическими объектами using System; using System.Drawing; using System.Windows.Forms; namespace WindowsApplicationl public partial class Forml : Form public FormlО { InitializeComponent(); } private void Forml Paint( object sender, PaintEventArgs e ) using ( Graphics g = e.Graphics ) 1
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |