Литература 1.Троелсен Э. Язык программирования С# 2005 и платформа.NET 2.0 - Изд. Вильямс, 2007. 2.Мак-Дональд М. WPF: Windows Presentation Foundation.

Презентация:



Advertisements
Похожие презентации
Диалоги ShowDialogСоздает модальный диалог. После вызова ShowDialog следующий оператор не выполняется пока не произойдет выход из метода. Пока не закрыт.
Advertisements

Windows forms. Объявление события public delegate void SampleEventDelegate(object Sender, string e); public event SampleEventDelegate SampleEvent; public.
Объявление события public delegate void SampleEventDelegate(object Sender, string e); public event SampleEventDelegate SampleEvent; public void CallEvent(string.
ВВЕДЕНИЕ В WINFORMS Лекция 1. Устройство Windows-приложения Оконнная функция Окно Цикл обработки сообщений OS Windows Программа создает окно и присоединяет.
Литература 1.Мэтью Мак-Дональд. Windows Presentation Foundation в.NET 3.5 с примерами на C# 2008 для профессионалов - Изд. Вильямс, Крис Андерсон.
Виды проектов Visual Studio.Net 2012 предлагает различные шаблоны для ваших начальных проектов. Основные поддерживаемые языки программирования: С#, C++,
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Создание оконных приложений в.NET Автор: Хайдуков Дмитрий Сергеевич.
Ресурсы WPF Два типа ресурсов WPF: объектные ресурсы (object resource) – определенный.NET-объект, который можно использовать многократно; ресурсы сборки.
Версия для Microsoft Visual C#. Создание проекта. 1.
©Павловская Т.А. (СПбГУ ИТМО) 1 Расчет рейтинга по модулю 4 вид учебной нагрузки баллы minmax Выполнение и защита лаб. раб. (2 штуки) 6 * 2 шт10 * 2 шт.
Классы WindowsForms элементов управления для работы со структурами данных Control ListViewTreeViewListControl ComboBoxListBox CheckedListBox DataGridViewDataGrid.
Урок информатики 10 класс Тема «Размещение текстовой информации на форме при помощи управляющих элементов» Учитель информатики МБОУ ОСОШ 1 Фирсов А.Н.
Высокоуровневые методы информатики и программирования Лекция 10 События.
Тема 5. Введение в среду визуального программирования Borland Delphi 7.0.
Классы Windows Presentation Foundation System.Object DispatcherObject ApplicationDependencyObject Visual UIElement FrameworkElement Page Shape TextBlock.
Графический интерфейс и событийные процедуры.. Графический интерфейс. Графический интерфейс необходим для реализации интерактивного диалога пользователя.
Общие сведения Так как среда программирования Visual Basic выполняется на компьютере вместе с операционной средой Windows, то создавать мы будем программы,
Высокоуровневые методы информатики и программирования Лекция 9 Делегаты.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Транксрипт:

Литература 1.Троелсен Э. Язык программирования С# 2005 и платформа.NET Изд. Вильямс, Мак-Дональд М. WPF: Windows Presentation Foundation в.NET 3.0 для профессионалов. - Изд. Вильямс, Петцольд Ч. Microsoft Windows Presentation Foundation. Базовый курс. - Изд. Microsoft Press. Русская редакция, СПб.: Питер, Нейгел К., Ивьен Б и др. С# 2005 и платформа.NET 3.0 для профессионалов. – Изд. Диалектика, 2007.

Платформа Microsoft ®.NET Windows Vista Windows XP Windows Server 2003 Windows Workflow Foundation Windows Communication Foundation Windows CardSpace Windows Presentation Foundation.NET Framework 2.0 ASP.NET …………….. ADO.NET Приложение Платформа Microsoft.NET Framework 3.0 это новая модель программирования управляемого кода для операционной системы Windows ®. Платформа Microsoft.NET Framework 3.0 это новая модель программирования управляемого кода для операционной системы Windows.

Новые технологии платформы.NET WWF - Windows Workflow Foundation – программная модель и набор инструментов для определения и выполнения логики потока работ независимо от специфики задействованных в нем операций. WCF - Windows Communication Foundation – новая коммуникационная технология - управление процессом создания распределенных систем и взаимодействия компонентов по сети на базе протоколов Web-сервисов. WPF – Windows Presentation Foundation – новая подсистема визуализации и пользовательского интерфейса. Windows CardSpace – технология безопасной идентификации пользователей при перемещении между ресурсами Интернета без необходимости повторного ввода имен и паролей (развитие Microsoft Passport).

WPF- Windows Presentation Foundation WPF – новая программная модель пользовательского интерфейса. Весь вывод происходит через DirectX – интерфейс аппаратно- ускоренной графики. Возможность использования языка разметки XAML (eXtensible Application Markup Language) для декларативного описания пользовательского интерфейса приложения. Common Language Runtime Windows Vista Windows XP Windows Server 2003 DirectX Windows Presentation Foundation PresentationFrameworkPresentationCoremilcore WindowsForms

Компиляция приложения Windows API Исходные файлы.cpp С++ компилятор для Windows Компоновщик для Windows Исполняемый файл.exe без ресурсов Заголовочные файлы.h Библиотеки.lib Объектные файлы.obj Файл описания модуля.def Компилятор ресурсов Скомпилированный файл ресурсов.res Текстовый файл ресурсов.rc Бинарные файлы ресурсов.ico.bmp … Заголовочные файлы.h Исполняемый модуль.exe Заголовок Код Ресурсы Компилятор ресурсов

Выполнение приложения Windows API OC Windows Очередь сообщений приложения 1 Данные с информацией об элементах управления приложения 1 Приложение 1 WinMain Оконная функция 1 Оконная функция 2 Оконная функция … Приложение 2 WinMain Оконная функция 1 Оконная функция 2 Оконная функция … Данные с информацией об элементах управления приложения 2 Очередь сообщений приложения 2 Цикл обработки сообщений Цикл обработки сообщений User32.dll Код функций API

Windows Forms WindowsForms - подмножество типов библиотеки BCL в.NET Framework 1.0, 2.0, 3.0 для создания пользовательского интерфейса локальных приложений. Классы поддерживают все элементы пользовательского интерфейса Win32. Некоторые классы описывают элементы управления, работающие только в.NET Framework. Большая часть типов определена в пространстве имен System.Windows.Forms и во вложенных в него пространствах имен.

Windows Forms и Win32 Форма (Form) - окно верхнего уровня или окно диалога. Обычно окно верхнего уровня содержит несколько элементов управления - дочерних окон, реализующих типовую функциональность. Любое окно приложения является объектом операционной системы – при его создании ОС в своих сегментах распределяет память для информации о текущем состоянии окна и назначает ему дескриптор (handle). По дескрипторам операционная система идентифицирует окна приложений. В приложении на C# форма является объектом типа System.Windows.Forms.Form или производного от него. Дескриптор окна доступен через свойство базового класса System.Windows.Forms.Control и иногда используется программой. public virtual IntPtr Handle {get;}

Выполнение приложения WindowsForms Очередь сообщений приложения 1 Данные с информацией об элементах управления приложения 1 Приложение 1 Класс Program Обработчик события 1 Обработчик события 2 Обработчик события … Приложение 2 Класс Program Обработчик события 1 Обработчик события 2 Обработчик события … Данные с информацией об элементах управления приложения 2 Очередь сообщений приложения 2 User32.dll Код функций API CLR Событие Сообщение Классы WindowsForms Main() Класс Form1 InitializeComponent() Класс Form1 InitializeComponent()

Иерархия классов Windows Forms System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ScrollableControl System.Windows.Forms.ContainerControl System.Windows.Forms.Form MarshalByRefObjectОбъекты передаются по ссылке через границу домена приложения, процесса или компьютера (в отличие от типов, производных от MarshalByValueComponent). Componentреализует IComponent

Иерархия классов Windows Forms -2 ControlБазовый для класса Form и классов элементов управления, реализует общую функциональность всех элементов управления. Компонент с визуальным представлением. ScrollableControlБазовый класс для элементов управления, поддерживающих автоматическую прокрутку ( auto- scrolling). Содержит свойство public virtual bool AutoScroll {get; set;} ContainerControlРеализует IContainer. Логически содержит одну или несколько компонент, которые называются дочерними компонентами контейнера.

Классы элементов управления Windows Forms Control ButtonBase Button CheckBox RadioButton TextBoxBase TextBox RichTextBox ListControl ListBox ComboBox Label GroupBox PictureBox Control ListView TreeView TrackBar ProgressBar ToolBar StatusBar TabControl DateTimePicker MonthCalendar ScrollBar DataGrid

Классы стандартных диалогов CommonDialog FileDialog OpenFileDialog SaveFileDialog FolderBrowserDial og ColorDialog FontDialog PrintDialog PageSetupDialog

Визуальный дизайнер форм При создании проекта Visual C# Windows Forms Application public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; private System.Windows.Forms.TextBox textBox1;... } cоздает класс, производный от класса System.Windows.Forms.Form - Form1 в примере; добавляет в класс поля - ссылки на объекты классов, описывающих элементы управления на форме.

Метод InitializeComponent() Визуальный дизайнер форм создает метод InitializeComponent() и размещает его вызов в конструкторе формы. В методе InitializeComponent() распределяется память под объекты классов для элементов пользовательского интерфейса и присваиваются значения по умолчанию некоторым их свойствам; все элементы управления (ссылки на объекты) добавляются к коллекции элементов управления. public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); }

Метод InitializeComponent() -2 private void InitializeComponent() { … this.Controls.Add(this.button2); this.Controls.Add(this.textBox1); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } Форма как окно(объект OC) создается либо при вызове статического метода Run класса Application, либо при вызове экземплярных методов Show или ShowDialog класса Form static void Main() { Application.Run(new Form1()); } В методе InitializeComponent() все элементы управления (ссылки на объекты) добавляются к коллекции элементов управления.

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

Взаимодействие с пользователем Все аппаратные прерывания мыши и клавиатуры (действия пользователя) кодируются OC в определенном формате и размещаются в очереди сообщений. В очереди сообщений размещаются также сообщения, связанные с работой самого приложения или других приложений. OC для каждого приложения создает и поддерживает свою очередь сообщений. Каждое сообщение связано с конкретным окном приложения (хранит дескриптор окна) и может содержать дополнительную информацию.

Взаимодействие с.NET Framework.NET Framework выбирает сообщения из очереди приложения и преобразует их в события. Объекты приложения подписываются на события, указывая метод- обработчик события. Некоторые классы имеют обработчики по умолчанию. В приведенном ниже примере форма подписалась на три события – Load, FormClosing и FormClosed. private void InitializeComponent() { … this.Load += new System.EventHandler(this.Form1_Load); this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing); }

Обработчики событий Обработчику события.Net Framework передает два параметра. первый содержит ссылку на объект, который вызвал событие. через второй параметр передается ссылка на объект с дополнительной информацией о событии. Тип второго параметра зависит от события. Некоторые события (например, событие Button.Click) не передают дополнительную информацию. private void button1_Click(object sender, EventArgs e) { MessageBox.Show("button1_Click"); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (first) { first = false; e.Cancel = true; } MessageBox.Show("Form1_FormClosing"); } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { MessageBox.Show("Closed: " + e.CloseReason.ToString()); }

Для вывода сообщений и организации простейшего взаимодействия с пользователем обычно используется статический метод Show класса MessageBox public static DialogResult Show( string text ); public static DialogResult Show( string text, string caption, MessageBoxButtons buttons ); public static DialogResult Show ( string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton); Окно сообщений. Класс MessageBox System.Object System.Windows.Forms.MessageBox В классе только один метод Show (статический, 21 перегрузка в 3.5)

Перечисление MessageBoxButtons определяет набор кнопок в диалоге сообщений MessageBox. Перечисления для MessageBox Button1Button2Button3 OkOkCancelRetryCancel YesNoYesNoCancel AbortRetryIgnore Перечисление MessageBoxIcons определяет одну из готовых иконок в диалоге сообщений MessageBox. Перечисление MessageBoxDefaultButton определяет кнопку по умолчанию в диалоге сообщений MessageBox. AsteriskErrorExclamation HandInformationNone QuestionStopWarning

используется как возвращаемое значение статического метода Show класса MessageBox; как значение свойства DialogResult класса Form; как значение свойства DialogResult класса Button. Элементы перечисления DialogResult: Перечисление DialogResult OkCancel YesNoNone AbortRetryIgnore if ( MessageBox.Show("Continue?","", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { … } else return;