SlideShare a Scribd company logo
Windows Forms
Windows forms concept

- Все програмування побудоване на
  подіях та їх обробниках.

- Все є Control
Application
Клас який полегшує роботу з нашою windows forms application.

Корисні властивості:
• OpenForms

Корисні методи:
• Run()
• Exit()
• DoEvents()

Корисні події:
• ThreadException
• Idle
Visual Studio Form Designer
Дизайнер візуал студії тільки генерує код.
Іменування
-   LabelControl -> lbl<name>
-   ButtonControl -> btn<name>
-   TextBox -> txt<name>
-   …
Layout
User controls

UserControl – це користувацький контрол який служить
контейнером для стандартних контролів.


Створювати власний UserControl потрібно:
- Коли певна частина інтерфейсу буде
  перевикористовуватися.
- Коли ви хочете більш логічно розділити графічний
  інтерфейс.
Form Lifecycle

 1. Move
 2. Load
 3. VisibleChanged
 4. Activated
 5. Shown
 6. Paint
 7. Deactivate
 8. Closing
 9. Closed

http://www.c-sharpcorner.com/uploadfile/mamta_m/windows-forms-events-lifecycle/
Modalnon-Modal forms
Модальна форма – це форма яка буде показана поверх всіх вікон, користувач не може працювати з
іншими формами поки дана форма відкрита.

var form = new Form1();
var result = form.ShowDialog();
(синхронне показування форми)



Не-модальна форма – це форма яка є рівноправною по відношенні до інших форм програми. Програма
може мати декілька відкритих форм.

var form = new Form2();
form.Show();
(асинхронне показування форми)
Form.Close
За допомогою Close(); методу ви можете закрити форму.

1. Якщо ваша форма модальна – то після її закритят потрібно вручну викликати
   Dispose.
2. Якщо ваша форма НЕ модальна – то після її закритят Dispose буде викликаний
   у контексті Close і звільняти ресурси не треба вручну.
         Якщо вам потрібно показувати не модальну формук декілька раз то можете її ховани методом
Hide()


Щоб управляти процесом закриття форми можна підписатися на обробку події
Form.Closing.
Default buttons
Dialogs & DialogResults
Якщо будь яка кнопка має встановлений DialogResult то після її натиснення (якщо форма була показана як
модальна) – форма контейнер закриється і ShowDialog() поверне встановлений DialogResult.




Якщо після натиснення кнопки ми вручну проставимо DialogResult то форма (якщо форма була показана
як модальна) закриється і ShowDialog() поверне встановлений DialogResult.

private void btnOk_Click(object sender, EventArgs e)
{
      DialogResult = DialogResult.OK;
}

Якщо ваше діалогове вікно буде закрите Х (у верхньому куті вікна), або викличеться метод Close(), та ви
не встановлювали значення DialogResult вручну, то результатом закриття буде DialogResult.Cancel;
MessageBoxes
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
      const string message = "Are you sure that you would like to close the form?";
      const string caption = "Form Closing";
      var result = MessageBox.Show(
                           message, caption,
                           MessageBoxButtons.YesNo,
                           MessageBoxIcon.Question);
      if (result == DialogResult.No)
      {
              e.Cancel = true;
      }
}
WinForms + Threadings
Потік(thread) – це незалежний шлях виконання, може
виконуватися одночасно з іншими потоками.



Звернаття до UI повинне здійснюватися тільки
з того потоку в якому UI був створений.
WinForms + Threadings
Вирішення проблем багатопоточності:
1. Якщо ви не маєте змоги вплинути на багатопоточний
   функціонал.
  public void DoInUIThread(Action action)
  {
       if (InvokeRequired)
       {
              Invoke(new MethodInvoker(action));
       }
       else
       {
              action();
       }
   }
WinForms + Threadings
Вирішення проблем багатопоточності:
2. Якщо ви маєте змогу впливати на багатопоточний
   функціонал – використовуйте BackgroundWorker.




http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx
Usability

More Related Content

What's hot

8 клас урок 43
8 клас урок 438 клас урок 43
8 клас урок 43
Артём Бондаренко
 
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
School5uman
 
Урок 33. Налагодження проекту
Урок 33. Налагодження проектуУрок 33. Налагодження проекту
Урок 33. Налагодження проекту
Василь Тереховський
 
8 клас. Хутько В. Урок 29-30
8 клас. Хутько В. Урок 29-308 клас. Хутько В. Урок 29-30
8 клас. Хутько В. Урок 29-30
Andrey Podgayko
 

What's hot (8)

8 клас урок 43
8 клас урок 438 клас урок 43
8 клас урок 43
 
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
 
5 10
5 105 10
5 10
 
5 9
5 95 9
5 9
 
Урок 33. Налагодження проекту
Урок 33. Налагодження проектуУрок 33. Налагодження проекту
Урок 33. Налагодження проекту
 
8 клас. Хутько В. Урок 29-30
8 клас. Хутько В. Урок 29-308 клас. Хутько В. Урок 29-30
8 клас. Хутько В. Урок 29-30
 
12blog
12blog12blog
12blog
 
8 12blog
8 12blog8 12blog
8 12blog
 

Viewers also liked

#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)Victor Matyushevskyy
 
Library Management System
Library Management SystemLibrary Management System
Library Management System
Bijay Chaurasiya
 
Library management system presentation
Library management system presentation Library management system presentation
Library management system presentation
Smit Patel
 
Library Management System PPT
Library Management System PPTLibrary Management System PPT
Library Management System PPT
Tamaghna Banerjee
 

Viewers also liked (9)

Usability
UsabilityUsability
Usability
 
Practices
PracticesPractices
Practices
 
04 standard class library c#
04 standard class library c#04 standard class library c#
04 standard class library c#
 
06 LINQ
06 LINQ06 LINQ
06 LINQ
 
05 functional programming
05 functional programming05 functional programming
05 functional programming
 
#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)#3 Об'єктно орієнтоване програмування (ч. 2)
#3 Об'єктно орієнтоване програмування (ч. 2)
 
Library Management System
Library Management SystemLibrary Management System
Library Management System
 
Library management system presentation
Library management system presentation Library management system presentation
Library management system presentation
 
Library Management System PPT
Library Management System PPTLibrary Management System PPT
Library Management System PPT
 

Similar to Windows forms

зош №15 жулькова с.а. урок з інформати ки 7клас
зош №15 жулькова    с.а.        урок з інформати ки 7класзош №15 жулькова    с.а.        урок з інформати ки 7клас
зош №15 жулькова с.а. урок з інформати ки 7клас
Александр Дрон
 
події
подіїподії
лаб. роб. №1 створення dll-бібліотеки на c++
лаб. роб. №1   створення dll-бібліотеки на c++лаб. роб. №1   створення dll-бібліотеки на c++
лаб. роб. №1 створення dll-бібліотеки на c++
cit-cit
 
урок 7
урок 7урок 7
урок 7
School5uman
 
урок 7
урок 7урок 7
урок 7
School5uman
 
Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...
Nikolay Shaygorodskiy
 
урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...
урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...
урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...
School5uman
 
Laboratorna robota2
Laboratorna robota2Laboratorna robota2
Laboratorna robota2
mukolaivna
 
5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами
5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами
5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами
Дмитро Загура
 
Урок 23. Події. Обробники подій
Урок 23. Події. Обробники подійУрок 23. Події. Обробники подій
Урок 23. Події. Обробники подій
Василь Тереховський
 
вікна та обєкти програм
вікна та обєкти програмвікна та обєкти програм
вікна та обєкти програмAnn Eres
 
Lesson # 47. concept of form, control, event, event handler. bzd briefing
Lesson # 47. concept of form, control, event, event handler. bzd briefingLesson # 47. concept of form, control, event, event handler. bzd briefing
Lesson # 47. concept of form, control, event, event handler. bzd briefing
Nikolay Shaygorodskiy
 
конспект уроку налагодження програм
конспект уроку налагодження програмконспект уроку налагодження програм
конспект уроку налагодження програм
tan4ikbah
 
6 клас урок 8
6 клас урок 86 клас урок 8
6 клас урок 8
Наталья Ильина
 
07 07-delphi
07 07-delphi07 07-delphi
07 07-delphi
Iren50
 
5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна
5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна
5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна
Дмитро Загура
 
Visual studio 2013 Розробка простого консольного додатка
Visual studio 2013 Розробка простого консольного додаткаVisual studio 2013 Розробка простого консольного додатка
Visual studio 2013 Розробка простого консольного додатка
Vadym Rud
 
Visual basic
Visual basicVisual basic
Visual basic
metallurg056
 
середовище Lazarus
середовище Lazarusсередовище Lazarus
середовище Lazarus
Татьяна Ляш
 

Similar to Windows forms (20)

зош №15 жулькова с.а. урок з інформати ки 7клас
зош №15 жулькова    с.а.        урок з інформати ки 7класзош №15 жулькова    с.а.        урок з інформати ки 7клас
зош №15 жулькова с.а. урок з інформати ки 7клас
 
події
подіїподії
події
 
лаб. роб. №1 створення dll-бібліотеки на c++
лаб. роб. №1   створення dll-бібліотеки на c++лаб. роб. №1   створення dll-бібліотеки на c++
лаб. роб. №1 створення dll-бібліотеки на c++
 
урок 7
урок 7урок 7
урок 7
 
урок 7
урок 7урок 7
урок 7
 
Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...Lesson # 46. the main components of the application for the operating system ...
Lesson # 46. the main components of the application for the operating system ...
 
урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...
урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...
урок 12 операції над вікнами практична робота № 2 «робота з вікнами та їх об’...
 
Laboratorna robota2
Laboratorna robota2Laboratorna robota2
Laboratorna robota2
 
5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами
5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами
5 клас. Морзе. Урок 12. Практична робота 2. Робота з вікнами та їх об'єктами
 
Урок 23. Події. Обробники подій
Урок 23. Події. Обробники подійУрок 23. Події. Обробники подій
Урок 23. Події. Обробники подій
 
вікна та обєкти програм
вікна та обєкти програмвікна та обєкти програм
вікна та обєкти програм
 
Lesson # 47. concept of form, control, event, event handler. bzd briefing
Lesson # 47. concept of form, control, event, event handler. bzd briefingLesson # 47. concept of form, control, event, event handler. bzd briefing
Lesson # 47. concept of form, control, event, event handler. bzd briefing
 
конспект уроку налагодження програм
конспект уроку налагодження програмконспект уроку налагодження програм
конспект уроку налагодження програм
 
6 клас урок 8
6 клас урок 86 клас урок 8
6 клас урок 8
 
07 07-delphi
07 07-delphi07 07-delphi
07 07-delphi
 
5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна
5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна
5 клас. Морзе. Урок 11. Вікно програми, основні об'єкти вікна
 
Visual studio 2013 Розробка простого консольного додатка
Visual studio 2013 Розробка простого консольного додаткаVisual studio 2013 Розробка простого консольного додатка
Visual studio 2013 Розробка простого консольного додатка
 
23
2323
23
 
Visual basic
Visual basicVisual basic
Visual basic
 
середовище Lazarus
середовище Lazarusсередовище Lazarus
середовище Lazarus
 

More from Victor Matyushevskyy (15)

Design patterns part 2
Design patterns part 2Design patterns part 2
Design patterns part 2
 
Design patterns part 1
Design patterns part 1Design patterns part 1
Design patterns part 1
 
Multithreading and parallelism
Multithreading and parallelismMultithreading and parallelism
Multithreading and parallelism
 
Mobile applications development
Mobile applications developmentMobile applications development
Mobile applications development
 
Service oriented programming
Service oriented programmingService oriented programming
Service oriented programming
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
ASP.Net part 2
ASP.Net part 2ASP.Net part 2
ASP.Net part 2
 
Java script + extjs
Java script + extjsJava script + extjs
Java script + extjs
 
ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Основи Баз даних та MS SQL Server
Основи Баз даних та MS SQL ServerОснови Баз даних та MS SQL Server
Основи Баз даних та MS SQL Server
 
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
 
#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)
 
#1 C# basics
#1 C# basics#1 C# basics
#1 C# basics
 
#0 Вступна лекція
#0 Вступна лекція#0 Вступна лекція
#0 Вступна лекція
 

Windows forms

  • 2. Windows forms concept - Все програмування побудоване на подіях та їх обробниках. - Все є Control
  • 3. Application Клас який полегшує роботу з нашою windows forms application. Корисні властивості: • OpenForms Корисні методи: • Run() • Exit() • DoEvents() Корисні події: • ThreadException • Idle
  • 4. Visual Studio Form Designer Дизайнер візуал студії тільки генерує код.
  • 5. Іменування - LabelControl -> lbl<name> - ButtonControl -> btn<name> - TextBox -> txt<name> - …
  • 7. User controls UserControl – це користувацький контрол який служить контейнером для стандартних контролів. Створювати власний UserControl потрібно: - Коли певна частина інтерфейсу буде перевикористовуватися. - Коли ви хочете більш логічно розділити графічний інтерфейс.
  • 8. Form Lifecycle 1. Move 2. Load 3. VisibleChanged 4. Activated 5. Shown 6. Paint 7. Deactivate 8. Closing 9. Closed http://www.c-sharpcorner.com/uploadfile/mamta_m/windows-forms-events-lifecycle/
  • 9. Modalnon-Modal forms Модальна форма – це форма яка буде показана поверх всіх вікон, користувач не може працювати з іншими формами поки дана форма відкрита. var form = new Form1(); var result = form.ShowDialog(); (синхронне показування форми) Не-модальна форма – це форма яка є рівноправною по відношенні до інших форм програми. Програма може мати декілька відкритих форм. var form = new Form2(); form.Show(); (асинхронне показування форми)
  • 10. Form.Close За допомогою Close(); методу ви можете закрити форму. 1. Якщо ваша форма модальна – то після її закритят потрібно вручну викликати Dispose. 2. Якщо ваша форма НЕ модальна – то після її закритят Dispose буде викликаний у контексті Close і звільняти ресурси не треба вручну. Якщо вам потрібно показувати не модальну формук декілька раз то можете її ховани методом Hide() Щоб управляти процесом закриття форми можна підписатися на обробку події Form.Closing.
  • 12. Dialogs & DialogResults Якщо будь яка кнопка має встановлений DialogResult то після її натиснення (якщо форма була показана як модальна) – форма контейнер закриється і ShowDialog() поверне встановлений DialogResult. Якщо після натиснення кнопки ми вручну проставимо DialogResult то форма (якщо форма була показана як модальна) закриється і ShowDialog() поверне встановлений DialogResult. private void btnOk_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; } Якщо ваше діалогове вікно буде закрите Х (у верхньому куті вікна), або викличеться метод Close(), та ви не встановлювали значення DialogResult вручну, то результатом закриття буде DialogResult.Cancel;
  • 13. MessageBoxes private void Form1_FormClosing(object sender, FormClosingEventArgs e) { const string message = "Are you sure that you would like to close the form?"; const string caption = "Form Closing"; var result = MessageBox.Show( message, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.No) { e.Cancel = true; } }
  • 14. WinForms + Threadings Потік(thread) – це незалежний шлях виконання, може виконуватися одночасно з іншими потоками. Звернаття до UI повинне здійснюватися тільки з того потоку в якому UI був створений.
  • 15. WinForms + Threadings Вирішення проблем багатопоточності: 1. Якщо ви не маєте змоги вплинути на багатопоточний функціонал. public void DoInUIThread(Action action) { if (InvokeRequired) { Invoke(new MethodInvoker(action)); } else { action(); } }
  • 16. WinForms + Threadings Вирішення проблем багатопоточності: 2. Якщо ви маєте змогу впливати на багатопоточний функціонал – використовуйте BackgroundWorker. http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx