🗊 Презентация Построение оконных приложений

Нажмите для полного просмотра!
Построение оконных приложений, слайд №1 Построение оконных приложений, слайд №2 Построение оконных приложений, слайд №3 Построение оконных приложений, слайд №4 Построение оконных приложений, слайд №5 Построение оконных приложений, слайд №6 Построение оконных приложений, слайд №7 Построение оконных приложений, слайд №8 Построение оконных приложений, слайд №9 Построение оконных приложений, слайд №10 Построение оконных приложений, слайд №11 Построение оконных приложений, слайд №12 Построение оконных приложений, слайд №13 Построение оконных приложений, слайд №14 Построение оконных приложений, слайд №15 Построение оконных приложений, слайд №16 Построение оконных приложений, слайд №17 Построение оконных приложений, слайд №18 Построение оконных приложений, слайд №19 Построение оконных приложений, слайд №20 Построение оконных приложений, слайд №21 Построение оконных приложений, слайд №22 Построение оконных приложений, слайд №23 Построение оконных приложений, слайд №24 Построение оконных приложений, слайд №25 Построение оконных приложений, слайд №26 Построение оконных приложений, слайд №27 Построение оконных приложений, слайд №28 Построение оконных приложений, слайд №29 Построение оконных приложений, слайд №30 Построение оконных приложений, слайд №31 Построение оконных приложений, слайд №32 Построение оконных приложений, слайд №33 Построение оконных приложений, слайд №34 Построение оконных приложений, слайд №35 Построение оконных приложений, слайд №36 Построение оконных приложений, слайд №37 Построение оконных приложений, слайд №38 Построение оконных приложений, слайд №39 Построение оконных приложений, слайд №40 Построение оконных приложений, слайд №41 Построение оконных приложений, слайд №42 Построение оконных приложений, слайд №43 Построение оконных приложений, слайд №44 Построение оконных приложений, слайд №45 Построение оконных приложений, слайд №46 Построение оконных приложений, слайд №47 Построение оконных приложений, слайд №48 Построение оконных приложений, слайд №49 Построение оконных приложений, слайд №50 Построение оконных приложений, слайд №51 Построение оконных приложений, слайд №52 Построение оконных приложений, слайд №53 Построение оконных приложений, слайд №54 Построение оконных приложений, слайд №55 Построение оконных приложений, слайд №56 Построение оконных приложений, слайд №57 Построение оконных приложений, слайд №58 Построение оконных приложений, слайд №59 Построение оконных приложений, слайд №60 Построение оконных приложений, слайд №61 Построение оконных приложений, слайд №62 Построение оконных приложений, слайд №63 Построение оконных приложений, слайд №64 Построение оконных приложений, слайд №65 Построение оконных приложений, слайд №66 Построение оконных приложений, слайд №67 Построение оконных приложений, слайд №68 Построение оконных приложений, слайд №69 Построение оконных приложений, слайд №70 Построение оконных приложений, слайд №71 Построение оконных приложений, слайд №72 Построение оконных приложений, слайд №73 Построение оконных приложений, слайд №74 Построение оконных приложений, слайд №75 Построение оконных приложений, слайд №76 Построение оконных приложений, слайд №77 Построение оконных приложений, слайд №78 Построение оконных приложений, слайд №79 Построение оконных приложений, слайд №80 Построение оконных приложений, слайд №81

Содержание

Вы можете ознакомиться и скачать презентацию на тему Построение оконных приложений. Доклад-сообщение содержит 81 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Язык С# Построение оконных приложений Лекция #7
Описание слайда:
Язык С# Построение оконных приложений Лекция #7

Слайд 2


Способы создания приложения Windows Вручную и откомпилировать csc.exe WinDes.exe из .NET SDK Visual Studio.NET
Описание слайда:
Способы создания приложения Windows Вручную и откомпилировать csc.exe WinDes.exe из .NET SDK Visual Studio.NET

Слайд 3


Обзор пространства имен Windows.Forms
Описание слайда:
Обзор пространства имен Windows.Forms

Слайд 4


Создание главного окна приложения namespace MyRawWindow { using System; using System.Windows.Forms; public class MainWindow : Form { public...
Описание слайда:
Создание главного окна приложения namespace MyRawWindow { using System; using System.Windows.Forms; public class MainWindow : Form { public MainWindow(){} // Запускаем приложение public static int Main (string[] args) { Application.Run(new MainWindow()); return 0; } } }

Слайд 5


Визуальная разработка
Описание слайда:
Визуальная разработка

Слайд 6


Фрагмент кода public class Form1 : System.Windows.Forms.Form { private System.ComponentModel.Container components = null; public Form1() {...
Описание слайда:
Фрагмент кода public class Form1 : System.Windows.Forms.Form { private System.ComponentModel.Container components = null; public Form1() { InitializeComponent(); // TODO here } protected override void Dispose( bool disposing ) { // Если удалять что-то, то здесь if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.Size = new System.Drawing.Size(300,300); this.Text = "Form1"; } #endregion [STAThread] static void Main() { Application.Run(new Form1()); } }

Слайд 7


Методы объекта Application
Описание слайда:
Методы объекта Application

Слайд 8


Свойства объекта Application
Описание слайда:
Свойства объекта Application

Слайд 9


События объекта Application
Описание слайда:
События объекта Application

Слайд 10


Добавление атрибутов в файл AssemblyInfo.cs // Атрибуты для нашей сборки [assembly:AssemblyCompany("Intertech, Inc.")]...
Описание слайда:
Добавление атрибутов в файл AssemblyInfo.cs // Атрибуты для нашей сборки [assembly:AssemblyCompany("Intertech, Inc.")] [assembly:AssemblyProduct("A Better Window")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]

Слайд 11


Работа с классом Application namespace AppClassExample { using System; using System.Windows.Forms; using System.Reflection; public class MainForm :...
Описание слайда:
Работа с классом Application namespace AppClassExample { using System; using System.Windows.Forms; using System.Reflection; public class MainForm : Form { ... public MainForm() { GetStats(); } private void GetStats() { MessageBox.Show(Application.CompanyName, "Company:"); MessageBox.Show(Application.ProductName, "App Name:"); MessageBox.Show(Application.StartupPath, "I live here:"); } } }

Слайд 12


Реагируем на событие ApplicationExit public class MainForm : Form { ... public MainForm() { ... // Перехватываем событие ApplicationExit...
Описание слайда:
Реагируем на событие ApplicationExit public class MainForm : Form { ... public MainForm() { ... // Перехватываем событие ApplicationExit Application.ApplicationExit += new EventHandler(Form_OnExit); } // Метод, запускаемый обработчиком событий private void Form_OnExit(object sender, EventArgs evArgs) { MessageBox.Show("See ya!", "This app is dead..."); } }

Слайд 13


Препроцессинг сообщений // Мы должны указать это пространство имен! using Microsoft.Win32; // Создаем класс — фильтр сообщений public class...
Описание слайда:
Препроцессинг сообщений // Мы должны указать это пространство имен! using Microsoft.Win32; // Создаем класс — фильтр сообщений public class MyMessageFilter : IMessageFilter { public bool PreFilterMessage(ref Message m) { // Перехватываем нажатие правой кнопки мыши if (m.Msg = = 513) // WM_LBUTTONDOWN = 513 { MessageBox.Show("WM_LBUTTONDOWN is: " + m.Msg); return true; } return false; // Все остальные сообщения игнорируются } }

Слайд 14


Добавление фильтра public class MainForm : Form { private MyMessageFilter msgFilter = new MyMessageFilter(); ... public MainForm() { ... // Добавляем...
Описание слайда:
Добавление фильтра public class MainForm : Form { private MyMessageFilter msgFilter = new MyMessageFilter(); ... public MainForm() { ... // Добавляем (регистрируем) фильтр сообщений Application.AddMessageFilter(msgFilter); } // Обработчик событий private void Form_OnExit(object sender, EventArgs evArgs) { MessageBox.Show("See ya!", "This app is dead..."); // Удаляем фильтр сообщений Application.RemoveMessageFilter(msgFilter); } }

Слайд 15


Анатомия формы Структура оконного приложения
Описание слайда:
Анатомия формы Структура оконного приложения

Слайд 16


Цепочка наследования класса Form
Описание слайда:
Цепочка наследования класса Form

Слайд 17


Класс Component реализация интерфейса IComponent public interface IComponent: IDisposable { // Свойство Site public ISite Site { virtual get; vitural...
Описание слайда:
Класс Component реализация интерфейса IComponent public interface IComponent: IDisposable { // Свойство Site public ISite Site { virtual get; vitural site;} // Событие Disposed public event EventHandler Disposed; }

Слайд 18


Класс Component реализация интерфейса ISite, который позволяет элементу управления взаимодействовать с контейнером, в котором он расположен public...
Описание слайда:
Класс Component реализация интерфейса ISite, который позволяет элементу управления взаимодействовать с контейнером, в котором он расположен public interface ISite: IServiceProvider { // Свойства интерфейса ISite public IComponent Component { virtual get; } public IContainer Container { virtual get; } public bool DesignMode { virtual get; } public string Name { virtual get; virtual set; } }

Слайд 19


Переопределение метода Dispose public override void Dispose() { base.Dispose(); // Здесь выполняем необходимые действия }
Описание слайда:
Переопределение метода Dispose public override void Dispose() { base.Dispose(); // Здесь выполняем необходимые действия }

Слайд 20


Класс Control Класс Control определяет общие черты всех типов, относящихся к элементам графического интерфейса
Описание слайда:
Класс Control Класс Control определяет общие черты всех типов, относящихся к элементам графического интерфейса

Слайд 21


Важные свойства объекта Control
Описание слайда:
Важные свойства объекта Control

Слайд 22


Важные методы объекта Control
Описание слайда:
Важные методы объекта Control

Слайд 23


Важные методы объекта Control
Описание слайда:
Важные методы объекта Control

Слайд 24


Настройка стиля формы public enum ControlStyles { AllPaintingToWmPaint, CacheText, ContainerControl, EnableNotifyMessage, FixedHeight, FixedWidth,...
Описание слайда:
Настройка стиля формы public enum ControlStyles { AllPaintingToWmPaint, CacheText, ContainerControl, EnableNotifyMessage, FixedHeight, FixedWidth, Opaque, ResizeRedraw, Selectable, StandardClick, StandardDoubleClick, SupportsTransparentBackColor, UserMouse, UserPaint }

Слайд 25


Настройка стиля формы public enum ControlStyles { AllPaintingToWmPaint, CacheText, ContainerControl, EnableNotifyMessage, FixedHeight, FixedWidth,...
Описание слайда:
Настройка стиля формы public enum ControlStyles { AllPaintingToWmPaint, CacheText, ContainerControl, EnableNotifyMessage, FixedHeight, FixedWidth, Opaque, ResizeRedraw, Selectable, StandardClick, StandardDoubleClick, SupportsTransparentBackColor, UserMouse, UserPaint }

Слайд 26


Важные события класс Control
Описание слайда:
Важные события класс Control

Слайд 27


Работаем с классом Control // Необходимо для использования типа Rectangle using System.Drawing; ... public class MainForm : Form { public static int...
Описание слайда:
Работаем с классом Control // Необходимо для использования типа Rectangle using System.Drawing; ... public class MainForm : Form { public static int Main(string[] args) { Application.Run(new MainForm()); return 0; } public MainForm() { Top = 100; Left = 75; Height = 100; Width = 500; MessageBox.Show(Bounds.ToString(), "Current rect"); } }

Слайд 28


Завершение работы приложения protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) components.Dispose(); }...
Описание слайда:
Завершение работы приложения protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) components.Dispose(); } base.Dispose( disposing ); MessageBox.Show("Disposing this Form"); }

Слайд 29


Перехват событий от мыши public class MainForm : Form { public static int Main(string[] args) { Application.Run(new MainForm()); return 0; } public...
Описание слайда:
Перехват событий от мыши public class MainForm : Form { public static int Main(string[] args) { Application.Run(new MainForm()); return 0; } public MainForm() { Top = 100; Left = 75; Height = 100; Width = 500; MessageBox.Show(Bounds.ToString(), "Current rect"); // Перехватываем событие MouseUp this.MouseUp += new MouseEventHandler(OnMouseUp); } // Метод, вызываемый при возникновении события MouseUp public void OnMouseUp(object sender, MouseEventArgs e) { this.Text = "Clicked at: (" + e.X + ", " + e.Y +")"; } ... }

Слайд 30


Перехват событий от мыши public class MainForm : Form { ... public MainForm() { ... // Отслеживаем движения мыши (вместе с событием MouseUp...
Описание слайда:
Перехват событий от мыши public class MainForm : Form { ... public MainForm() { ... // Отслеживаем движения мыши (вместе с событием MouseUp this.MouseUp += new MouseEventHandler(OnMouseUp); this.MouseMove += new MouseEventHandler(OnMouseMove); } public void OnMouseUp(object sender, MouseEventArgs e) { if(e.Button = = MouseButtons.Left) MessageBox.Show("Left click!"); if(e.Button = = MouseButtons.Right) MessageBox.Show("Right click!"); if(e.Button = = MouseButtons.Middle) MessageBox.Show("Middle click!"); } public void OnMouseMove(object sender, MouseEventArgs e) { this.Text = "Current Pos: (" + e.X + ", " + e.Y + ")"; } ... }

Слайд 31


2-й вариант public class MainForm : Form { public MainForm() { // Сейчас обработчики событий нам уже нужны // this.MouseUp += new...
Описание слайда:
2-й вариант public class MainForm : Form { public MainForm() { // Сейчас обработчики событий нам уже нужны // this.MouseUp += new MouseEventHandler(OnMouseUp); // this.MouseUp += new MouseEventHandler(OnMouseMove); } protected override void OnMouseUp( //object sender, MouseEventArgs e) { // Какая кнопка мыши нажата? if(e.Button == MouseButtons.Left) MessageBox.Show("Left click!"); if(e.Button == MouseButtons.Right) MessageBox.Show("Right click!"); if(e.Button == MouseButtons.Middle) MessageBox.Show("Middle click!"); } protected override void OnMouseMove(//object sender, MouseEventArgs e) { this.Text = "Current Pos: (" + e.X + ", " + e.Y + ")"; } ... }

Слайд 32


Реагируем на события клавиатуры public class MainForm : form { ... public MainForm() { Top = 100; Left = 75; Height = 100; Width = 500;...
Описание слайда:
Реагируем на события клавиатуры public class MainForm : form { ... public MainForm() { Top = 100; Left = 75; Height = 100; Width = 500; MessageBox.Show(Bounds.ToString(), "Current rect"); ... // Перехватываем событие KeyUp this.KeyUp += new KeyEventHandler(OnKeyUp); } public void OnKeyUp(object sender, KeyEventArgs e) { MessageBox.Show(e.KeyCode.ToString(), "KeyPressed!"); } ... }

Слайд 33


Свойства класса KeyEventArgs
Описание слайда:
Свойства класса KeyEventArgs

Слайд 34


Дополнительные свойства класса Control
Описание слайда:
Дополнительные свойства класса Control

Слайд 35


Дополнительные методы класса Control
Описание слайда:
Дополнительные методы класса Control

Слайд 36


Дополнительные события класса Control
Описание слайда:
Дополнительные события класса Control

Слайд 37


Возможности класса Control using System; using System.Windows.Forms; using System.Drawing; // Для типов Color, Brush и Font public class MainForm :...
Описание слайда:
Возможности класса Control using System; using System.Windows.Forms; using System.Drawing; // Для типов Color, Brush и Font public class MainForm : Form { ... public MainForm() { // Устанавливаем значения некоторых свойств BackColor = Color.Tomato; Opacity = 0.5d; Cursor = Cursors.WaitCursor; // Перехватываем событие Paint this.Paint += new PaintEventHandler(Form1_Paint); } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("What a head trip...", new Font("Times New Roman", 20), new SolidBrush(Color.Black), 40, 10); } }

Слайд 38


Событие Paint и PaintEventArgs ClipRectangle – прямоугольная область вывода изображения Graphics – контекст вывода изображения
Описание слайда:
Событие Paint и PaintEventArgs ClipRectangle – прямоугольная область вывода изображения Graphics – контекст вывода изображения

Слайд 39


Класс ScrollableControl // Этот код помещается в конструктор класса // InitializeComponent() // Для работы с классом Size также нужна ссылка // на...
Описание слайда:
Класс ScrollableControl // Этот код помещается в конструктор класса // InitializeComponent() // Для работы с классом Size также нужна ссылка // на пространство имен System.Drawing this.AutoScroll = true; this.AutoScrollMiSize=new System.Drawing.Size(300,300);

Слайд 40


Класс ContainerControl
Описание слайда:
Класс ContainerControl

Слайд 41


Некоторые свойства класса Form (2)
Описание слайда:
Некоторые свойства класса Form (2)

Слайд 42


Некоторые свойства класса Form
Описание слайда:
Некоторые свойства класса Form

Слайд 43


Некоторые методы класса Form
Описание слайда:
Некоторые методы класса Form

Слайд 44


Некоторые события класса Form
Описание слайда:
Некоторые события класса Form

Слайд 45


Иллюстрация возможностей класса Form public class MainForm: Form { ... public MainForm() { // Настраиваем исходный облик нашей формы BackColor =...
Описание слайда:
Иллюстрация возможностей класса Form public class MainForm: Form { ... public MainForm() { // Настраиваем исходный облик нашей формы BackColor = Color.LemonChiffon; // Цвет фона: Text = "My Fantastic Form"; // Заголовок формы: Size = new Size(200, 200); // Размер 200*200: CenterToScreen(); // Помещаем форму в центр экрана: // Перехватываем события this.Resize += new EventHandler(this.MainForm_Resize); this.Paint += new PaintEventHandler(this.MainForm_Paint); } private void MainForm_Resize(object sender, System.EventArgs e) { // При изменении размера формы ее изображение нужно обновить! Можно также // вместо вызова Invalidate просто установить поддержку стиля ResizeRedraw Invalidate(); } // Выводим текстовую строку. private void MainForm_paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("Windows Forms is for building GUIs!", new Font("Times New Roman", 20), new SolidBrush(Color.Black), this.DisplayRectangle); // Выводим в клиентской прямоугольной области } }

Слайд 46


Меню
Описание слайда:
Меню

Слайд 47


Члены класса Menu
Описание слайда:
Члены класса Menu

Слайд 48


Члены вложенного класса Menu$MenuItemCollection
Описание слайда:
Члены вложенного класса Menu$MenuItemCollection

Слайд 49


Создание меню программным способом public class MainForm: Form { private MainMenu mainMenu; // Главное меню для Form public MainForm() { mainMenu =...
Описание слайда:
Создание меню программным способом public class MainForm: Form { private MainMenu mainMenu; // Главное меню для Form public MainForm() { mainMenu = new MainMenu(); // Создаем главное меню // Создаем меню File и добавляем его в MenuItemCollection MenuItem miFile = mainMenu.MenuItems.Add("&File"); // Теперь создаем подменю Exit и добавляем его в меню File. Этот вариант Add() // принимает: (1) создаваемый объект MenuItem; (2) создаваемый делегат // (EventHandler); (3) необязательную клавиатурную комбинацию быстрого доступа miFileMenuItems.Add(new MenuItem("E&xit", new EventHandler(this.FileExit_Clicked),Shortcut.CtrlX)); // Присоединяем главное меню к объекту Form this.Menu = mainMenu; } ... }

Слайд 50


public class MainForm : Form // Простое приложение с главным меню public class MainForm : Form // Простое приложение с главным меню { // Главное меню...
Описание слайда:
public class MainForm : Form // Простое приложение с главным меню public class MainForm : Form // Простое приложение с главным меню { // Главное меню для формы private MainMenu mainMenu; // Запускаем приложение [STAThread] public static int Main(string[] args) { Application.Run(new MainForm()); } // Создаем форму public MainForm() { // Настраиваем исходный облик и местонахождение формы Text = "Simple Menu"; CenterToScreen(); mainMenu = new MainMenu(); // Создаем объект главного меню // Создаем меню File | Exit MenuItem miFile = mainMenu.MenuItems.Add("&File"); miFile.MenuItems.Add(new MenuItem("E&xit", new EventHandler(this.FileExit_Clicked), Shortcut.CtrlX)); this.Menu = mainMenu; // Присоединяем главное меню к объекту Form // MainMenu.GetForm() возвращает ссылку на форму, на которой расположено // меню. Поэтому мы можем сделать такой маленький фокус: mainMenu.GetForm().BackColor = Color.Black; } // И не забыть про обработчик событий для File-Exit private void FileExit_Clicked(object sender, EventArgs e) { this.Close(); // Выход из приложения } }

Слайд 51


Добавляем еще одно меню верхнего уровня public class MainForm : Form { private MainMenu mainMenu; ... public MainForm() { // Создаем меню File - Exit...
Описание слайда:
Добавляем еще одно меню верхнего уровня public class MainForm : Form { private MainMenu mainMenu; ... public MainForm() { // Создаем меню File - Exit MenuItem miFile = mainMenu.MenuItems.Add("&File"); miFile.MenuItems.Add(new MenuItem("E&xit", new EventHandler(this.FileExit_Clicked), Shortcut.CtrlX)); // А теперь — еще и меню Help - About MenuItem miHelp = mainMenu.MenuItems.Add("Help"); miHelp.MenuItems.Add(new MenuItem("&About", new EventHandler(this.HelpAbout_Clicked), Shortcut.CtrlA)); ... } // И обработчик события для Help - About private void HelpAbout_Clicked(object sender, EventArgs e) { MessageBox.Show("The amazing menu app..."); } }

Слайд 52


Создаем контекстное меню I namespace MainForm { // Вспомогательная структура для установки размера шрифта internal struct TheFontSize { public static...
Описание слайда:
Создаем контекстное меню I namespace MainForm { // Вспомогательная структура для установки размера шрифта internal struct TheFontSize { public static int Huge = 30; public static int Normal = 20; public static int Tiny = 8; } public class MainForm : Form { // Исходный размер шрифта private int currFontSize = TheFontSize.Normal; // Контекстное меню формы private ContextMenu popUpMenu; public static void Main(string[] args) { Application.Run(new MainForm()); } private void MainForm_Resize(object sender, System.EventArgs e) { Invalidate(); }

Слайд 53


Создаем контекстное меню II public MainForm() { // Прежде всего создаем контекстное меню popUpMenu = new ContextMenu(); // Теперь добавляем в...
Описание слайда:
Создаем контекстное меню II public MainForm() { // Прежде всего создаем контекстное меню popUpMenu = new ContextMenu(); // Теперь добавляем в контекстное меню элементы popUpMenu.MenuItems.Add("Huge", new EventHandler(PopUp_Clicked)); popUpMenu.MenuItems.Add("Normal", new EventHandler(PopUp_Clicked)); popUpMenu.MenuItems.Add("Tiny", new EventHandler(PopUp_Clicked)); // Теперь подключаем контекстное меню к форме this.ContextMenu = popUpMenu; // Ставим обработчики событий this.Resize += new System.EventHandler(this.MainForm_Resize); this.Paint += new PaintEventHandler(this.MainForm_Paint); }

Слайд 54


Создаем контекстное меню III // Обработчик для PopUp_Clicked (всех трех пунктов) private void PopUp_Clicked(object sender, EventArgs e) { //...
Описание слайда:
Создаем контекстное меню III // Обработчик для PopUp_Clicked (всех трех пунктов) private void PopUp_Clicked(object sender, EventArgs e) { // Ориентируемся на строковое имя выбранного пользователем элемента меню MenuItem miClicked = (MenuItem)sender; string item = miClicked.Text; if(item = = "Huge") currFontSize = TheFontSize.Huge; if(item = = "Normal") currFontSize = TheFontSize.Normal; if(item = = "Tiny") currFontSize = TheFontSize.Tiny; Invalidate(); } private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("Please click on me...", new Font("Times New Roman", (float)currFontSize), new SolidBrush(Color.Black), this.DisplayRectangle); } } }

Слайд 55


Дополнительные возможности меню
Описание слайда:
Дополнительные возможности меню

Слайд 56


Дополнительные возможности меню
Описание слайда:
Дополнительные возможности меню

Слайд 57


Установка флажка в контекстном меню I public class MainForm : Form { // Текущий размер шрифта private int currFontSize = TheFontSize.Normal; //...
Описание слайда:
Установка флажка в контекстном меню I public class MainForm : Form { // Текущий размер шрифта private int currFontSize = TheFontSize.Normal; // Контекстное меню для формы private ContextMenu popUpMenu; // Дополнительные ссылки для отслеживания пункта меню, // напротив которого надо установить флажок private MenuItem currentCheckedItem; // Представляет выбранный в настоящий момент пункт меню private MenuItem checkedHuge; private MenuItem checkedNormal; private MenuItem checkedTiny; ... }

Слайд 58


Установка флажка в контекстном меню II // Конструктор формы public MainForm() { // Настраиваем исходный облик формы Text = "PopUp Menu";...
Описание слайда:
Установка флажка в контекстном меню II // Конструктор формы public MainForm() { // Настраиваем исходный облик формы Text = "PopUp Menu"; CenterToScreen(); // Прежде всего создаем контекстное меню popUpMenu = new ContextMenu(); // А теперь добавляем пункты меню popUpMenu.MenuItems.Add("Huge", new EventHandler(PopUp_Clicked)); popUpMenu.MenuItems.Add("Normal", new EventHandler(PopUp_Clicked)); popUpMenu.MenuItems.Add("Tiny", new EventHandler(PopUp_Clicked)); this.ContextMenu = popUpMenu; // Теперь привязываем каждую из наших ссылок на MenuItem к элементам // контекстного меню checkedHuge = this.ContextMenu.MenuItems[0]; checkedNormal = this.ContextMenu.MenuItems[1]; checkedTiny = this.ContextMenu.MenuItems[2]; // А теперь ставим флажок напротив Normal: currentCheckedItem = checkedNormal; currentCheckedItem.Checked = true; }

Слайд 59


Установка флажка в контекстном меню III private void PopUp_Clicked(object sender, EventArgs e) { // Снимаем флажок с выбранного в настоящий момент...
Описание слайда:
Установка флажка в контекстном меню III private void PopUp_Clicked(object sender, EventArgs e) { // Снимаем флажок с выбранного в настоящий момент пункта currentCheckedItem.Checked = false; // Определяем название выбранного пользователем пункта меню MenuItem miClicked = (MenuItem)sender; string item = miClicked.Text; // В ответ на выбор пользователя устанавливаем нужный размер шрифта и флажок // напротив пункта меню if(item = = "Huge") { currFontSize = TheFontSize.Huge; currentCheckedItem = checkedHuge; } if(item = = "Normal") { currFontSize = TheFontSize.Normal; currentCheckedItem = checkedNormal; } if(item = = "Tiny") { currFontSize = TheFontSize.Tiny; currentCheckedItem = checkedTiny; } // А теперь устанавливаем флажок currentCheckedItem.Checked = true; Invalidate(); }

Слайд 60


Создание меню при помощи VS
Описание слайда:
Создание меню при помощи VS

Слайд 61


Свойства объекта StatusBar
Описание слайда:
Свойства объекта StatusBar

Слайд 62


Свойства объекта StatusBarPanel
Описание слайда:
Свойства объекта StatusBarPanel

Слайд 63


Свойства объекта StatusBarPanel
Описание слайда:
Свойства объекта StatusBarPanel

Слайд 64


Создаем строку состояния public class MainForm : Form { // Создаем объекты для всей строки состояния и ее // отдельных панелей private StatusBar...
Описание слайда:
Создаем строку состояния public class MainForm : Form { // Создаем объекты для всей строки состояния и ее // отдельных панелей private StatusBar statusBar = new StatusBar(); private StatusBarPanel sbPnlPrompt = new StatusBarPanel(); private StatusBarPanel sbPnlTime = new StatusBarPanel(); public MainForm() { ... // Метод, который создаст нам строку состояния // и настроит ее нужным образом BuildStatBar(); }

Слайд 65


Создаем строку состояния private void BuildStatBar() { // Настраиваем строку состояния statusBar.ShowPanels = true; statusBar.Size = new...
Описание слайда:
Создаем строку состояния private void BuildStatBar() { // Настраиваем строку состояния statusBar.ShowPanels = true; statusBar.Size = new System.Drawing.Size(212, 20); statusBar.Location = new System.Drawing.Point(0, 216); // Панели добавляются в строку состояния при помощи метода AddRange() statusBar.Panels.AddRange(new StatusBarPanel[] {sbPnlPrompt, sbPnlTime}); // Настраиваем левую панель sbPnlPrompt.BorderStyle = StatusBarPanelBorderStyle.None; sbPnlPrompt.AutoSize = StatusBarPanelAutoSize.Spring; sbPnlPrompt.Width = 62; sbPnlPrompt.Text = "Ready"; // Настраиваем правую панель sbPnlTime.Alignment = HorizontalAlignment.Right; sbPnlTime.Width = 76;

Слайд 66


Создаем строку состояния // Добавляем значок try { // Этот значок обязательно должен находиться в каталоге приложения. Icon i = new...
Описание слайда:
Создаем строку состояния // Добавляем значок try { // Этот значок обязательно должен находиться в каталоге приложения. Icon i = new Icon("status.ico"); sbPnlPrompt.Icon = i; } catch(Exception e) { MessageBox.Show(e.Message); } // Теперь добавляем панель управления в коллекцию Controls // для формы this.Controls.Add(statusBar); } }

Слайд 67


Члены класса Timer
Описание слайда:
Члены класса Timer

Слайд 68


Работа с таймером public class MainForm : Form { ... private Timer timer1 = new Timer(); public MainForm() { // Настраиваем объект Timer...
Описание слайда:
Работа с таймером public class MainForm : Form { ... private Timer timer1 = new Timer(); public MainForm() { // Настраиваем объект Timer timer1.Interval = 1000; timer1.Enabled = true; timer1.Tick += new EventHandler(timer1_Tick); ... } // Этот метод будет вызываться примерно каждую секунду private void timer1_Tick(object sender, EventArgs e) { DateTime t = DateTime.Now; string s = t.ToLongTimeString(); // Выводим полученное строковое значение на правую панель sbPnlTime.Text = s; } }

Слайд 69


Отображение в строке состояния подсказок к пунктам меню public class MainForm : Form { ... public MainForm() { ... // Событие MenuComplete происходит...
Описание слайда:
Отображение в строке состояния подсказок к пунктам меню public class MainForm : Form { ... public MainForm() { ... // Событие MenuComplete происходит при выходе пользователем из меню. // Мы будем реагировать на это событие, возвращая в левую панель строку // по умолчанию "Ready". Если мы этого не сделаем, в строке состояния // останется значение, которое изменилось при выборе пользователем пункта меню! this.MenuComplete += new EventHandler(StatusForm_MenuDone); BuildMenuSystem(); } private void FileExit_Selected(object sender, EventArgs e) { sbPnlPrompt.Text = "Terminates this app"; } private void HelpAbout_Selected(object sender, EventArgs e) { sbPnlPrompt.Text = "Displays app info"; } private void StatusForm_MenuDone(object sender, EventArgs e) { sbPnlPrompt.Text = "Ready"; }

Слайд 70


Отображение в строке состояния подсказок к пунктам меню // Вспомогательные функции private void BuildMenuSystem() { // Создаем главное меню mainMenu...
Описание слайда:
Отображение в строке состояния подсказок к пунктам меню // Вспомогательные функции private void BuildMenuSystem() { // Создаем главное меню mainMenu = new MainMenu(); // Создаем меню File MenuItem miFile = mainMenu.MenuItems.Add("&File"); miFile.MenuItems.Add(new MenuItem("E&xit", new EventHandler(this.FileExit_Clicked), Shortcut.CtrlX)); // Обрабатываем событие Select для пункта меню Exit miFile.MenuItems[0].Select += new EventHandler(FileExit_Selected); // Теперь создаем меню Help | About MenuItem miHelp = mainMenu.MenuItems.Add("Help"); miHelp.MenuItems.Add(new MenuItem("&About", new EventHandler(this.HelpAbout_Clicked), Shortcut.CtrlA)); // Обрабатываем событие Select для пункта меню About miHelp.MenuItems[0].Select += new EventHandler(HelpAbout_Selected); // Присоединяем главное меню к объекту Form this.Menu = mainMenu; } ... }

Слайд 71


Панель инструментов Класс ToolBar Класс ToolBarButton Поместить кнопки в ToolBarButtonCollection объекта ToolBar
Описание слайда:
Панель инструментов Класс ToolBar Класс ToolBarButton Поместить кнопки в ToolBarButtonCollection объекта ToolBar

Слайд 72


Свойства класса ToolBar
Описание слайда:
Свойства класса ToolBar

Слайд 73


Свойства класса ToolBarButton
Описание слайда:
Свойства класса ToolBarButton

Слайд 74


Простейшая (без изображений) панель public class MainForm : Form { // Создаем панель инструментов и две кнопки private ToolBarButton tbSaveButton =...
Описание слайда:
Простейшая (без изображений) панель public class MainForm : Form { // Создаем панель инструментов и две кнопки private ToolBarButton tbSaveButton = new ToolBarButton(); private ToolBarButton tbExitButton = new ToolBarButton(); private ToolBar toolBar = new ToolBar(); public MainForm() { ... BuildToolBar(); // Вспомогательная функция } ...

Слайд 75


Простейшая (без изображений) панель private void BuildToolBar() { // Настраиваем каждую кнопку tbSaveButton.Text = "Save";...
Описание слайда:
Простейшая (без изображений) панель private void BuildToolBar() { // Настраиваем каждую кнопку tbSaveButton.Text = "Save"; tbSaveButton.ToolTipText = "Save"; tbExitButton.Text = "Exit"; tbExitButton.ToolTipText = "Exit"; // Настраиваем параметры панели инструментов и добавляем на нее кнопку toolBar.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; toolBar.ShowToolTips = true; toolBar.Buttons.AddRange(new ToolBarButton[] {tbSaveButton, tbExitButton}); toolBar.ButtonClick += new ToolBarButtonClickEventHandler(ToolBar_Clicked); // Добавляем панель инструментов в коллекцию Controls this.Controls.Add(toolBar); } // Обработчик событий для кнопок private void ToolBar_Clicked(object sender, ToolBarButtonClickEventArgs e) { MessageBox.Show(e.Button.ToolTipText);} }

Слайд 76


Добавление изображений public class MainForm : Form { // Объект для хранения набора изображений private ImageList toolBarIcons = new ImageList(); ......
Описание слайда:
Добавление изображений public class MainForm : Form { // Объект для хранения набора изображений private ImageList toolBarIcons = new ImageList(); ... private void BuildToolBar() { // Настраиваем кнопку "Save" tbSaveButton.ImageIndex = 0; tbSaveButton.ToolTipText = "Save"; // Настраиваем кнопку "Exit" tbExitButton.ImageIndex = 1; tbExitButton.ToolTipText = "Exit"; // Создаем панель инструментов и добавляем на нее кнопки toolBar.ImageList = toolBarIcons; ... // Загружаем значки (соответствующие файлы должны быть в каталоге приложения toolBarIcons.ImageSize = new System.Drawing.Size(32, 32); toolBarIcons.Images.Add(new Icon("filesave.ico")); toolBarIcons.Images.Add(new Icon("fileexit.ico")); toolBarIcons.ColorDepth = ColorDepth.Depth16Bit; toolBarIcons.TransparentColor = System.Drawing.Color.Transparent; ... } }

Слайд 77


Создание панели инструментов в VS
Описание слайда:
Создание панели инструментов в VS

Слайд 78


Пример работы с системным реестром // Предположим, что у нас установлены следующие значения переменных: // Color currColor = Color.MistyRose; //...
Описание слайда:
Пример работы с системным реестром // Предположим, что у нас установлены следующие значения переменных: // Color currColor = Color.MistyRose; // private int currFontSize = TheFontSize.Normal; private void FileSave_Clicked(object sender, EventArgs e) { // Сохраняем настройки пользователя в реестре RegistryKey regKey = Registry.CurrentUser; regKey = regKey.CreateSubKey("Software\\Intertech\\Chapter8App"); regKey.SetValue("CurrSize", currFontSize); regKey.SetValue("CurrColor", currColor.Name); }

Слайд 79


Пример работы с системным реестром public MainForm() { // Открываем параметр реестра RegistryKey regKey = Registry.CurrentUser; regKey =...
Описание слайда:
Пример работы с системным реестром public MainForm() { // Открываем параметр реестра RegistryKey regKey = Registry.CurrentUser; regKey = regKey.CreateSubKey("Software\\Intertech\\Chapter8App"); // Считываем значения и присваиваем их соответствующим переменным currFontSize = (int)regKey.GetValue("CurrSize", currFontSize); string c = (string)regKey.GetValue("CurrColor", currColor.Name); currColor = Color.FromName(c); BackColor = currColor; ... }

Слайд 80


Запись в журнал событий // Срабатывает при активизации пользователем пункта меню File4Exit private void FileExit_Clicked(object sender, EventArgs e)...
Описание слайда:
Запись в журнал событий // Срабатывает при активизации пользователем пункта меню File4Exit private void FileExit_Clicked(object sender, EventArgs e) { // Мы делаем записи в журнал событий приложений ("Application"), // могли бы и в другой... EventLog log = new EventLog(); log.Log = "Application"; log.Source = Text; log.WriteEntry("Hey dude, this app shut down..."); log.Close(); // Завершаем работу приложения this.Close(); }

Слайд 81


Чтение журнала событий private void FileExit_Clicked(object sender, EventArgs e) { ... // Отображаем первые пять записей журнала событий приложений...
Описание слайда:
Чтение журнала событий private void FileExit_Clicked(object sender, EventArgs e) { ... // Отображаем первые пять записей журнала событий приложений for(int i = 0; i < 5; i++) { try { MessageBox.Show("Message: " + log.Entries[i].Message + "\n" + "Box name: " + log.Entries[i].MachineName + "\n" + "App: " + log.Entries[i].Source + "\n" + "Time entered: " + log.Entries[i].TimeWritten, "Application Log entry:"); } catch {} } }



Похожие презентации
Mypresentation.ru
Загрузить презентацию