Ос нови ро боти з MS Visual Studio , м ова С #
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Лабораторна р о бота №1.

Ос нови ро боти з MS Visual Studio , м ова С #

Ціль роботи

Опрацювати основні поняття кросплатформного програмування. Ознайомитися з середовищем MS VisualStudio та С#, особливостями розробки додатків, опанувати інструментальними засобами

 

Порядок виконання лабораторної роботи

1. Дослідити Основне вікно інтегрованого середовища розробки С# Builder, Головне меню, Інспектор об'єктів й т.д., для чого ознайомитись з матеріалом, що викладено на стор.30-55 у джерелі [1] рекомендованого списку літератури.

2. Відповісти на запитання по цьому матеріалу.

3. Встановити на персональному ПК інтегровану середу MS Visual Studio 2008. Дослідити її відповідність до теоретичного опису та працездатність середовища, виконавши практичне завдання з стор.51. Фраза, що виводиться у Вашому додатку повинна мати вид: « Перший додаток на C# студента гр._____ ПІБ». Продемонструвати на персональному ПК виконання цього завдання.

4. Ознайомитися з особливостями мови С#.

5. Сформувати звіт, що містить.

1. Вступну частину

2. Відповіді на запитання до лекційного матеріалу.

3.  Копії екрану з результатами виконання практичного завдання з стор.51

4. Виконати вправи з стор.81 підручника. Навести в звіті.

5. Зробити Висновки.

 

 

Питання до матеріалу

1. Що таке інтерфейс компонента і яке його призначення?

2. Що таке компонент, чим він відрізняється від класу?

3. Що визначає інтерфейсний контракт? Що являє собою інтерфейс компонента?

4. Основні властивості компонентів?

5. Рівні кросплатформності і різниця між ними?

6. У яких випадках використовується компіляція через проміжний код?

7. Для чого використовується компонентний каркас?

8. Що таке компонентна модель і яке її призначення?

9. Що таке збірка, її особливості, склад, призначення.

10. Что такое .NET Framework. Разработчик, версии, назначение

11. В чем заключаются основные преимущества .NET Framework

12. Опишите состав .NET Framework

13. В чем особенности написания приложений с помощью .NET Framework

14. Что такое код MSIL. Расшифруйте понятие.

15. Что такое JIT-компилятор. Для чего он предназначен.

16. Что такое сборка и что входит в ее состав

17. Опишите назначение и особенности языка С#

18. Охарактеризуйте состав Visual Studio 2008

19. Опишите различия Visual Studio 2008 и Visual Studio 2008Express

 

Питання по середовищу програмування С#

1. Отобразить и описать общий вид рабочего (начального) окна Visual Studio.

2. Укажите перечень окон, которые желательно (удобно) закрепить на экране для дальнейшей работы

3. Перечислите этапы создания простого консольного приложения в Visual Studio

4. Для чего предназначено и что отображается в окне Solution Explorer

5. Для чего предназначено и что отображается в окне Properties

6. Для чего предназначено и что отображается в окне Error List

 

 

Література

1. Уотсон К., Нейгел К, и др. "Visual C# 2008. Базовый курс", Wiley Publishing, 2009. - 1211с



Лабораторна р о бота № 2 .

Створення консольного та Windows -проекту

Ціль роботи

Опрацювати основні методи побудови консольного проекту та його Windows-прототипу

Лабораторна р о бота № 3

Розробка ТА ЗБИРАННЯ компонентів

Типу Windows Forms

Ціль роботи

Побудова компонентів типу Windows Forms з застосуванням форм та елементів керування

 

Теоретичні відомості

1. Шаблон створення компонентів для Windows Forms

2. Структура вікна Visual Studio при створенні Windows застосунків

2.1 Вікно проекту

Меню і панель інструментів

Properties Explorer – вікно властивостей об’єктів

3.4. Вікно компонентів: Toolbox

3.5. Властивості проекту

3. Типи форм (модальні і не модальні).

3.1. Типи форм

3.2. Властивості форми

3.3. Методи форми

3.4. Події форми

4. Розміщення на формі елементів керування (Controls)

4.1. Ієрархія класів Control

4.2. Заголовки (Label) і текстові поля (TextBox)

Компонент NumericUpDown - регулятор чисел

4.4. Контейнери елементів

5. Обробка подій в елементах форми

Примітка 1.

Якщо змінити назву форми з Form1 на іншу у вікні властивостей, то потрібно змінити цю назву і в методі Application.Run(new Form1());

Крім того, до складу кожного застосунку входить файл з інформацією про збірку (Assembly.info).

Таблиця 1. Найбільш важливі методи класу Application (всі вони є статичними)

Метод класу Призначення
AddMessageFilter( ) Ці методи дозволяють перехоплювати повідомлення RemoveMessageFilter( ) і виконувати з цими повідомленнями необхідні попередні дії. Для того щоб додати фільтр повідомлень, необхідно вказати клас, що реалізує інтерфейс IMessageFilter
DoEvents( ) Забезпечує здатність застосунку обробляти повідомлення з черги повідомлень під час виконання якої-небудь тривалої операції. Можна сказати, що DoEvents() - це "швидкий" замінник нормальної багатопоточності
Exit( ) Завершує роботу застосунку
ExitThred( ) Припиняє обробку повідомлень для поточного потоку і закриває всі вікна, власником яких є цей потік

Клас Application визначає багато статичних властивостей, більшість з яких доступні тільки для читання.

Таблиця 2. Основні властивості класу Application

Властивість Призначення
CommonAppDataRegistry Повертає параметр системного реєстру, який зберігає загальну для всіх користувачів інформацію про застосунок
CompanyName Повертає ім'я компанії
CurrentCulture Дозволяє задати або отримати інформацію про поточну мову, для роботи з якою призначений поточний потік
CurrentlnputLanguage Дозволяє задати або отримати інформацію про мову для введення інформації, одержуваної поточним потоком
ProductName Для отримання імені програмного продукту, яке асоційоване з даним застосунком
ProductVersion Дозволяє отримати номер версії програмного продукту
StartupPath Дозволяє визначити ім'я виконуваного файла для працюючого застосунку і шлях до нього в операційній системі

 

Вікно проекту

Вікно Solution Explorer – відображає дерево проекту і дозволяє управляти компонентами проекту. Наприклад, для того щоб додати в нього нову форму, просто виберіть в контекстному меню, що відкривається по клацанню правої кнопки миші, пункт Add/Add Windows Form.

Крім контекстного меню проекту існує ще ряд контекстних меню, що дозволяють управляти окремими елементами проекту. Так, щоб перемкнутися з вікна дизайнера у вікно коду проекту, виберіть в контекстному меню для Forml пункт View Code. Відповідно, щоб перемкнутися назад — View Designer. Контекстне меню є в кожного елемента дерева проекту. Використання контекстного меню — це швидкий інтерактивний спосіб навігації по проекту.

Приховування і відображення вікон – контекстне меню, команда Auto Hide.

Меню і панель інструментів

Головне меню має контекстну залежність від поточного стану середовища, тобто містить різні пункти залежно від того, чим ви зараз займаєтеся і в якому вікні знаходитеся. Основні команди меню відображаються і в панелі інструментів.

Вікно компонентівToolbox

Вікно відображає найбільш часто використовувані .NET компоненти для створення застосунків Windows. Toolbox має декілька закладок: Data, Components, Windows Forms, Clipboard Ring і General. Всі, окрім Clipboard Ring і General, містять компоненти, які можна перетягнути мишею на форму. Закладка Windows Forms включає візуальні елементи управління, такі як кнопки, списки, дерева. Закладка Data присвячена базам даних. Закладка Components містить невізуальні компоненти, найбільш представницьким серед яких є Timer.

Clipboard Ring відображає вміст буфера обміну за останні N операцій копіювання або вирізування. Для вставки вмісту, який був скопійований в буфер обміну декілька операцій назад, просто клацніть двічі лівою кнопкою миші по необхідному рядку.

Властивості проекту

Кожний проект має набір властивостей. Середовище Visual Studio .NET дозволяє змінювати ці настройки візуально. Виділіть в дереві Solution Explorer кореневий елемент з назвою проекту. Натисніть пункт меню View/Property Pages.

З'явиться вікно властивостей проекту «Common Properties/ General» (табл. 3.3).

Таблиця 3. Основні властивості проекту

Властивість Призначення
Assembly Name Ім'я збірки
Output Тур e Тут можна вибрати Windows Application
Console Application або Class Library. За умовчанням для Windows Forms встановлюється тип Windows Application
Default Namespace Використовуване за умовчанням в проекті простір імен.
Startup Object Ім'я класу, що містить метод Main, який буде викликатися при запуску застосування.
Application Icon Шлях до файла з піктограмою для застосування
Project File Ім'я файла, що містить інформацію про проект.
Project Folder Шлях до папки, що містить файл проекту.
Output File Ім'я вихідного файла. Файл з таким ім'ям буде формуватися при побудові вашого застосування.

Крім того, вам доцільно знати про властивості на закладці Configuration Properties/Build (табл. 3.4).

 

Таблиця 4. Основні властивості конфігурування збірки (рішення)

Властивість Призначення
Conditional Compilation Constants Визначені під час компіляції проекту константи. Вони допомагають розробнику управляти ходом компіляції проекту.
Optimize code Включення цієї властивості в true допомагає, в деяких випадках, збільшити продуктивність програми.
Check for Arithmetic Overflow/Underflow Дозволяє контролювати вихід результату за межі допустимих значень.
Allow unsafe code blocks Дозволяє використовувати в проекті ключове слово unsafe.
Warning Level Визначає рівень попереджень, що відображаються при компіляції програми.
Treat Warnings As Errors Дозволяє сприймати всі попередження як помилки.
Output Path Шлях, де буде сформований вихідний файл.
XML Documentation File Ім'я файла, в який буде записуватися документація з коментарів програми. Для формування документації необхідно використовувати меню Tools/Build Comment Web Pages.
Generate Debugging Information Генерувати інформацію відладки. Ця опція повинна бути включена при відладці застосування.

Краще залишити значення за замовчуванням.

Дизайнер форм

Дизайнер призначений для зручного і інтуїтивного створення інтерфейсу програми. До основних елементів дизайнера форм можна віднести:

• Properties Window (пункт меню View /Properties Window);

• Layout Toolbar (пункт меню View/Toolbars/Layout);

• Toolbox (пункт меню View/Toolbox).

Типи форм

У Windows є 2 типи форм: модальні (Modal) і не модальні. Модальність визначає поведінку фокусу вводу форми і тип інтерфейсу: однодокументний (SDI) чи багатодокументний (MDI).

Модальна форма не дозволяє переключати фокус вводу на іншу форму без свого закриття. Вона є реалізацією SDI. Прикладами модальних форм є всі стандартні блоки діалогу Windows (у тому числі повідомлення про помилки). Модальні форми мають фіксований розмір і містять обмежений склад команд системного меню.

Не модальна форма дозволяє переключатися на іншу форму. Вона реалізує MDI (multiple document interface). Ці форми можуть містити інші форми, які в цьому випадку називаються MDI child forms. MDI форма створюється після встановлення в true властивості IsMdiContainer.

Прикладом є вікно Word або Excel. Як правило, головна форма в застосунку є не модальною. Не модальні форми мають системне меню і кнопки згортки-відновлення. Вони можуть змінювати свій розмір. 

Кожна форма як екземпляр класу System.Windows.Forms має властивості, методи та події.

Властивості форми

Властивості визначають розмір і поведенку форми, фон, заголовок форми, особливості керування формою.

Статичні властивості можна встановити двома способами:

1) написати відповідні конструктори з ініціалізацією в файлі Form 1. designer . cs ;

2) встановити значення властивостей у вікні властивостей (Properties) в середовищі Visual Studio.

Динамічні властивості можна задавати під час виконання як реакцію на події.

Основні властивості форми (класу Form) перелічені в табл. 3.5.

Таблиця 5 . Основні властивості форми (класу Form )

Властивість Призначення Значення за замовчуванням
Name Назва форми в проекті. Form1, Form2..
AcceptButton Встановлюється значення кнопки, яка буде спрацьовувати при натисненні клавіші Enter. Для того щоб ця властивість була активною, необхідна наявність принаймні однієї кнопки, розташованої на формі None
BackColor Колір форми Control
BackgroundImage Фоновий рисунок None
CancelButton Встановлюється значення кнопки, яка буде спрацьовувати при натисненні клавіші Esc. None
ControlBox Встановлюється наявність або відсутність трьох стандартних кнопок у верхньому правому кутку форми: "Згорнути", "Розгорнути" і "Закрити"  
Cursor Визначається вид курсора при його положенні на формі Default
DrawGrid Встановлюється наявність або відсутність сітки з точок, яка допомагає форматувати елементи форми. True
Font Формат шрифта Microsoft Sans Serif; 8,25pt
FormBorderStyle Визначення виду границь форми. Sizable
Icon Зображення іконки, що розташовується в заголовку форми. Підтримуються формати .ico.
MaximizeBox Визначається активність стандартної кнопки "Розгорнути" у верхньому правому кутку форми.   True
MaximumSize Максимальний розмір ширини і висоти форми, що задається в пікселях. Форма буде приймати вказаний розмір при натисненні на стандартну кнопку "Розгорнути" 0;0 (У весь екран)
MinimizeBox Визначається активність стандартної кнопки "Згорнути" у верхньому правому кутку форми True
MinimumSize Мінімальний розмір ширини і висоти форми, що задається в пікселях. Форма буде приймати вказаний розмір при зміні її границь користувачем (якщо властивість FormBorderStyle має значення за умовчанням Sizable) 0;0
Size Ширина и висота форми 300; 300
StartPosition Визначення розташування форми при запуску застосування. WindowsDefaultLocation
Text Заголовок форми. Form1, Form 2
WindowState Визначення положення форми при запуску. Можливі значення: · Normal — форма запускається з розмірами, вказаними у властивості Size; · Minimized — форма запускається з мінімальними розмірами, вказаними у властивості MinimumSize; Maximized — форма розгортається на весь екран Normal

 

Методи форми

Методи забезпечують керування формою.

Таблиця 6. Основні методи класу Form

Ім’я методу Призначення
Form.ShowDialog() Забезпечує представлення форми як модального dialog box.
Form.Show() Показує форму як немодальний dialog box
Form.SetDesktopLocation() Використовується для позиціонування форми на поверхні desktop
Form.Activate() Активізує приховану форму
Form.Hide() Приховує форму
Form.Close(). Закриває форму

 

Події форми

Події форми пов’язані із створенням, знищенням, режимами роботи форми.

 

Таблиця 7. Основні події класу Form

Подія Призначення
Load Генерується один раз, безпосередньо після першого виклику методу Form.Show() або Form.ShowDialog(). Ця подія може використовуватися для первинної ініціалізації змінних і для підготовки форми до роботи (для кожної форми).
OnLoad Призначення максимальних і мінімальних розмірів форми
Activated Подія генерується при активізації форми. В обробнику події вставляють методи Form.Show(), Form.ShowDialog(), Form.Activate()
VisibleChanged Генерується при зміні властивості Visible форми коли вона стає видимою або невидимою. Події сприяють методи Form.Show(), Form.ShowDialog(), Form.Hide(), Form.Close().
Deactivated Виникає при втраті фокусу формою в результаті взаємодії з інтерфейсом користувача або в результаті виклику методів Form.Hide() або Form.Cloze() – але тільки для активної форми. Якщо закривати неактивну форму, подія не відбудеться.
Closing Виникає безпосередньо перед закриттям форми. У цей момент процес закриття форми може бути припинений і взагалі відмінений, чому сприяє розміщуваний в тілі обробника події наступний програмний код: e.Cancel = true; де e - подія типу CancelEventArgs.
Closed Вже після закриття форми. В обробнику цієї події розміщується будь-який код для “очищення” після закриття форми.

Ієрархія класів Control

Форма є контейнером, в якому розміщуються елементи керування (Controls) та компоненти.

Елементи керування — це компоненти, що забезпечують взаємодію між користувачем і програмою. Ці елементи розміщені в вікні Toolbox. Базовим класом є клас Control.

У вікні Toolbox елементи згруповані у групи за їх призначенням. Основні групи елементів:

Група командних об'єктів

Елементи Button, LinkLabel, ToolBar реагують на натискання кнопки миші і негайно запускають яку-небудь дію.

Група текстових об'єктів

Більшість застосунків надають можливість користувачу вводити текст і, у свою чергу, виводять різну інформацію у вигляді текстових записів. Елементи TextBox, RichTextBox приймають текст, а елементи Label, StatusBar виводять його. Для обробки введеного користувачем тексту, як правило, слід натискувати на один або декілька елементів з групи командних об'єктів.

Група перемикачів

До цієї групи входять об'єкти класів: ComboBox, ListBox, ListView, TreeView, NumericUpDown і інші.

Група контейнерів

Елементи-контейнери дозволяють групувати елементи. Як правило, елементи цієї групи розташовані на формі, служать підкладкою кнопкам, текстовим полям, спискам — тому вони і називаються контейнерами. Елементи Panel, GroupBox, TabControl, крім всього іншого, розділяють можливості застосунку на логічні групи, забезпечуючи зручність роботи.

Група графічних елементів

Для розміщення і відображення на формі графічних елементів (піктограм, зображень, заставок) використовуються елементи Image List, Picture Box.

PictureBox – об’єкт-контейнер для вставки зображень.

Діалогові вікна

Виконуючи різні операції з документом — відкриття, збереження, друк, попередній перегляд, — ми стикаємося з відповідними діалоговими вікнами. Класи OpenFileDialog, SaveFile Dialog, ColorDialog, PrintDialog містять вже готові операції для роботи з цими елементами.

Група меню

Містить елементи для створення різних типів меню: звичайного, панелі інструментів, контекстного меню.

На рис. 3.1. зображено ієрархію класів Control.

 

Рис. 1. Ієрархія класів Control

Таблиця 8. Основні властивості класу TextBoxBase

Властивість Призначення
Name Назва поля (ідентифікатор)
Text Текст
AutoSize Визначає, чи буде елемент управління автоматично змінювати розмір при зміні шрифту на ньому
BackColor, ForeColor Дозволяють отримати або встановити значення кольору фону і переднього плану
HideSelection Дозволяє отримати або встановити значення, визначальне, чи буде текст в TextBox залишатися виділеним після того, як цей елемент управління буде виведений з фокусу
MaxLength Визначає максимальну кількість символів, яка можна буде ввести в TextBox
Modified Дозволяє отримати або встановити значення, що визначає, чи був текст в TextBox змінений користувачем
Multiline Указує, чи може TextBox містити декілька рядків тексту
Readonly Позначає TextBox як доступний тільки для читання"
SelectedText, SelectionLength Містять виділений текст (або певну кількість символів) в TextBox
SelectionStart Дозволяє отримати початок виділеного тексту в TextBox
Wordwrap Визначає, чи буде текст в TextBox автоматично переноситися на новий рядок досягши граничної довжини рядка

 

В TextBoxBase визначено методи для роботи з буфером обміну (Cut, Copy і Paste), відміною введення (Undo) і іншими можливостями редагування (Clear, AppendText і т. п.).

З усіх подій, визначених в TextBoxBase, найбільший інтерес представляє подія TextChange. Ця подія відбувається при зміні тексту в об'єкті класу, похідному від TextBoxBase. Обробник події можна використовувати для перевірки допустимості символів, що вводяться користувачем (наприклад, припустимо, що користувач повинен вводити в полі тільки цифри або, навпаки, тільки букви).

Приклад 1. Обробник події KeyPress для поля txtDisc, в яке можно вводити тільки літери

 

  private void txtDisc_KeyPress(object sender, KeyPressEventArgs e)

   {

       if (char.IsDigit(e.KeyChar))

       {

           e.Handled = true;

           MessageBox.Show("Поле не може містити цифри");

       }

}

 

Призначення текстовому полю обробника події виконується у вікні Propery (Events) для події KeyPress.

Приклад 2.

Якщо поле може містити тільки цифри, то обробник може бути таким:

 

private void txtPIN_KeyPress(object sender, KeyPressEventArgs e)

{

       if (!char.IsDigit(e.KeyChar) )

       {

                   e.Handled = true;

                   lbloutput.Text ="Поле PIN повинно бути числовим";

       }

 

}

 

Примітка

Подія KeyPress блокує частину клавіатури.

 

Крім властивостей, визначених в TextBoxBase, кожний похідний клас має власні властивості. В табл. 3.9 перелічені основні властивості класу TextBox.

Таблиця 9. Основні властивості класу TextBox

Властивість Призначення
AcceptsReturn Дозволяє визначити, що буде, коли користувач при введенні тексту натисне на Enter. Варіанту два: або в TextBox починається новий рядок тексту, або активізується кнопка за замовчанням на формі
CharacterCasing Дозволяє вибрати символ, який використовується для відображення даних, що вводяться користувачем (в полі для введення пароля)
ScrollBars Дозволяє отримати або встановити значення, яке визначає, чи будуть в TextBox з декількома рядками смуги прокрутки
TextAlign Дозволяє визначити вирівнювання тексту в TextBox  

Приклад

int Value = (int)numericUpDownl.Value;

 

Контейнери елементів

Ціла група елементів-контейнерів в C# призначена для групування елементів. Основні контейнери:

GroupBox – логічне об’єднання елементів (прапорців, перемикачів).

Panel – Підтримує смуги прокрутки. Елементи Panel використовуються для економії простору на формі. Наприклад, якщо елементи, які плануємо розмістити на формі, на ній не уміщаються, то можна помістити їх всередину Panel і встановити для властивості AutoScrol1 об'єкту Panel значення true. В результаті користувач отримає можливість доступу до елементів управління, що не вміщаються, за допомогою смуг прокрутки.

Висновки

Windows-форми є популяним типом програм з інтерфейсом користувача. Вони використовуються для створення як локальних, так і розподілених систем за компонентною ідеологією. В результаті компіляції рішення створюється збірка, яка є готовим до використання компонентом, самодостатнім для розгортання і виконання. До складу збірки входить маніфест та конфігураційна інформація, необхідна і достатня для інтеграції розробленої збірки з іншими. Основним об'єктом є форма, на якій розміщуються елементи керування: текстові поля, списки, кнопки тощо. І форма і її елементи є класами, тому мають властивості, методи і події, за допомогою яких реалізується функціональність програмного компонента. Збірка може мати будь-яку кількість зв'язаних між собою форм.

 

Контрольні питання і завдання до теми

1. З яких файлів складається клас Form?  Чому цей клас розділений на два файли?

2. В якому файлі знаходиться точка входу в збірку?

3. Чим модальна форма відрізняється від немодальної?

4. Що таке неповний клас?

5. Який метод і якого класу запускає програму на виконання? Як називається головний клас збірки?

6. У якому вікні VS розташовані елементи керування і стандартні компоненти?

7. За допомогою якого вікна можна налаштувати властивості форми і її елементів?

8. Як встановити на формі властивості для програмних кнопок, які будуть спрацьовувати при натисненні клавіш Enter i Esc? Які властивості при цьому слід встановити?

9. Яка різниця в елементах керування Label і TextBox?

10. Який елемент є базовим в ієрархії елементів керування?

11. Чим NumericUpDown відрізніяється від ComboBox?

 



Лабораторна р о бота № 4

Ціль роботи

Набуття навичок побудови багатофункціональних рішень з застосуванням компонентів різних класів.

 

Таблиця 1. Властивості класу ButtonBase

Властивість Призначення
FlatStyle Дозволяє налаштувати "рельєфність" кнопки. Використовуються значення з переліку можливих значень властивості FlatStyle
Image Дозволяє задати зображення, яке буде виводитися на кнопці (при цьому можна вказати точне місцезнаходження зображення). Фоновий рисунок краще налаштовувати за допомогою властивості BackgroundImage, яка визначена в базовому класі Control
ImageAlign Дозволяє визначити вирівнювання зображення, розміщеного на кнопці. Використовуються значення з переліку можливих значень властивості ContentAlignment
Imagelndex , ImageList Ці властивості використовуються для роботи з набором зображень (об'єктом ImageList), що виводяться на кнопці
IsDefault Визначає, чи буде ця кнопка кнопкою за замовчанням (тобто спрацьовувати при натисненні на Enter)
TextAlign Дозволяє отримати або встановити вирівнювання тексту на кнопці.

 

Елемент Кнопка. Клас Button

Кнопка (button) - це найпростіший і найбільш застосовний з усіх елементів керування. Дозволяє організувати керування формою. Основні властивості класу наслідуються від ButtonBase і Control.

Найбільш використовувана подія кнопки - Click , яка виникає при натисненні на кнопку лівою кнопкою миші. Наприклад, для того, щоб закрити форму при натисненні на кнопку Завершити, в обробнику кнопки викликаємо метод Close()?

private void btmClose_Click(object sender, EventArgs e)

   {

     Close();

   }

Якщо рішення містить декілька форм, то для завершення роботи в обробнику кнопки викликаємо метод Application.Exit().

 

private void btmClose_Click(object sender, EventArgs e)

   {

       Application.Exit();

   }

Таблиця 2. Основні властивості класу CheckBox

Властивість Призначення
Appearance Налаштовує вигляд прапорця. Для цієї властивості використовуються значення з переліку можливих значень Appearance
AutoCheck Дозволяє отримати або встановити значення, яке визначає, чи будуть значення Checked і CheckState, а також зовнішній вигляд прапорця автоматично змінюватися при клацанні на ньому
CheckAlign Дозволяє встановити горизонтальне і вертикальне вирівнювання прапорця (квадратика) в елементі CheckBox. Використовуються значення з переліку ContentAlignment
Checked Повертає значення типу bool, що представляє поточний стан прапорця (вибраний або не вибраний) Якщо для властивості ThreeState встановлено значення true, то властивість Checked буде повертати true як для явно вибраного прапорця, так і для того прапорця, для якого встановлено значення не “визначено” (indeterminate)
CheckState Дозволяє отримати або встановити значення прапорця (встановлений - не встановлений - не визначено), використовуючи не true і false, як в Checked, а три значення з переліку CheckState. Звичайно використовується, якщо властивість ThreeState для прапорця має значення true (тобто він допускає три значення).
ThreeState Визначає, чи будуть для прапорця використовуватися три значення (з переліку CheckState) або тільки два
Enabled Повертає або задає значення, що визначає, чи активний елемент. Можливі значення: активний – true, інакше -false

 

Можливі стани прапорця (Indeterminate можна використовувати тільки тоді, коли для властивості ThreeState встановлено значення true) наведено в таблиці 3.

 

Таблиця 3. Можливі стани прапорця

Checked Прапорець встановлений
Indeterminate Значення не визначено (звичайно прапорець виглядає як "сірий", затіняє)
Unchecked Прапорець знятий

 

Таблиця 4. Основні властивості класу RadioButton

Властивість Призначення
Text Дозволяє отримати або встановити текст, який розміщений на перемикачі
AutoCheck Дозволяє отримати або встановити значення, яке визначає, чи будуть значення Checked і CheckState, а також зовнішній вигляд перемикача автоматично змінюватися при клацанні на ньому
TextAlign Дозволяє встановити горизонтальне і вертикальне вирівнювання тексту на перемикачі
Checked Повертає значення типу bool, що представляє поточний стан перемикаяа (вибраний або не вибраний). Якщо перемикач включений, значення Checked = true, інакше -  false.
CheckState Дозволяє отримати або встановити значення прапорця (встановлений - не встановлений - не визначено), використовуючи не true і false, як в Checked, а три значення з переліку CheckState. Звичайно використовується, якщо властивість ThreeState для прапорця має значення true (тобто він допускає три значення).
Enabled Повертає або задає значення, що визначає, чи активний елемент. Можливі значення: активний – true, інакше -false.

 

 

Приклад 1.

private void ClickMyRadioButton()

{

 if (radioButton2.Checked)

{

radioButton1.PerformClick();

}

}

 

При виборі перемикача генерується подія CheckedChanged:

private void radioButton1_CheckedChanged(object sender, EventArgs e)

   {

      

    }

Перемикачі завжди використовуються в групах, які розглядаються як єдине ціле. Усередині групи перемикачів одночасно може бути вибраний тільки один перемикач. Для угрупування перемикачів в групи використовується тип GroupBox.

І прапорець (CheckBox), і перемикач (RadioButton) підтримують властивість Checked, за допомогою якої зручно одержувати інформацію про стан відповідно прапорця і перемикача. Проте якщо є необхідність задіювати додатковий третій стан прапорця (не визначено - Indeterminate), то доведеться замість Checked використовувати властивість CheckState і значення з однойменного переліку CheckState.

Властивість Checked частіше за все використовується в коді.

Приховування елементів

Властивість елемента Visible дозволяє приховати чи зробити видимим елемент на формі. Значення Visible=true робить елемент видимим, Visible=false приховує елемент.

 

Приклад 2.

Приклад 3.

Створення елементу CheckBox

public void InstantiateMyCheckBox()

   {

       // Create and initialize a CheckBox.  

       CheckBox checkBox1 = new CheckBox();

 

       // Make the check box control appear as a toggle button.

       checkBox1.Appearance = Appearance.Button;

 

         // Turn off the update of the display on the click of the control.

       checkBox1.AutoCheck = false;

 

       // Add the check box control to the form.

       Controls.Add(checkBox1);

       checkBox1.Text = "Прапорець";

}

 

 

Контрольні запитання і завдання

1. Яка властивість встановлює чи вимикає прапорець, в залежності від поточного значення?

2. Яке призначення властивості CheckState?

3. Яке призначення властивості Checked?

4. Яке призначення властивості Enabled?

5. Яке призначення властивості Visible і чим вона відрізняється від Enabled?

6. Що означає оператор new у виразі:

CheckBox checkBox1 = new CheckBox();

7. Що означають наступні команди?

      Controls.Add(checkBox1);

       checkBox1.Text = "Прапорець";

8. Що означають наступні команди?

   private GroupBox groupBox1;

   private RadioButton radioButton2;

   private RadioButton radioButton1;

9. Чи можна прапорець, який створений в режимі дизайна форми і видимий при її завантаженні, приховати. Якщо так, то як це можна зробити?

10. Яку властивість прапорця краще використовувати для зміни стану: Visible чи  Enabled?

 



Лабораторна робота №5.

Створення DLL -бібліотек

Мета роботи

Опрацювати методи побудови бібліотек DLL та перевірки працездатності її функцій.

Set as StartUp Project

 

Після цього його можна запустити на виконання.

 

Лабораторна робота №6.

Застосування DLL -бібліотек

Мета роботи

Розробка Windows-проекту з включенням блоків динамічної бібліотеки, перевірка кросплатформності.

Set as StartUp Project

 

Після цього його можна запустити на виконання.

 

Лабораторна робота №7.

 Створення багатофайлової збірки

Мета роботи

Освоїти роботу з Компілятором командного рядка csc й процедуру створення багатофайлової збірки.

Теоретичні відомості

Многофайловая сборка - это коллекция взаимосвязанных модулей, которые развертываются в виде цельной логической единицы. В IDE-среде Visual Studio шаблона проекта для создания многофайловой сборки на С# не предусмотрено. Поэтому используется компилятор командной строки (csc.exe).

 

Задача: создать многофайловую сборку по имени Car. В главном модуле этой сборки (car.dll) должен содержаться единственный тип класса SportCar и соответствующий манифест, который указывает на наличие дополнительного файла *.netmodule по имени auto.netmodule, содержащего еще один класс Auto. Каждый класс должен размещаться в отдельном двоичном файле, а пространство имен у них будет одно — Car. Оба класса создать на С#

 

Порядок создания многофайловой сборки приведен ниже.

 

1. С помощью любого простого текстового редактора создадим определение для класса Auto и сохраним его в файле с именем auto.cs:

using System;

 

namespace Car

{

public class Auto

{

   public void AutoInfo()

   {

       Console.WriteLine("Информация об автомобиле: ");

   }

}

}

 

2. Скомпилируем этот класс в .NET-модуль. Для этого откройте в Visual Studio 2010 окно командной строки, перейдите в папку, где был сохранен файл auto.cs, и введите следующую команду (опция module флага /t указывает, что должен быть создан файл *.netmodule, а не *.dll или *.ехе):

 

csc.exe /t:module auto.cs

 

В папке с файлом auto.cs появится новый файл по имени auto.netmodule.

 

3. Создадим новый файл sportcar.cs со следующим определением класса:

 

using System;

 

namespace Car

{

public class SportCar

{

   public void InfoSportCar()

   {

       Console.WriteLine("Audi R8");

   }

 }

}

 

4.  Скомпилируем sportcar.cs так, чтобы главный модуль в этой многофайловой сборке назывался car.dll. Кроме того, он должен включать информацию о двоичном файле auto.netmodule.

Выбираем соответствующие опции /t: library и /out:.

Чтобы включить информацию о двоичном файле auto.netmodule в манифест сборки, также потребуется добавить соответствующий флаг /addmodule. Полностью необходимая команда выглядит следующим образом:

 

csc /t:library /addmodule:auto.netmodule /out:car.dll sportcar.cs

 

После выполнения этой команды в каталоге должен появиться главный модуль car.dll, а также второстепенный двоичный файл auto.netmodule.

 

5. Анализ манифеста.

5.1. Откроем файл auto.netmodule в утилите c:\program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe (возможно, путь на вашем ПК будет иной). Сразу же можно будет заметить, что в нем содержится манифест уровня модуля, единственной задачей которого является перечисление всех внешних сборок, которые упоминаются в кодовой базе. Поскольку в классе Auto был практически добавлен только вызов Console.WriteLine(), обнаружится следующая ключевая информация:

5.2. Далее откроем в ildasm.exe файл главного модуля car.dll и изучим содержимое манифеста уровня всей сборки. В нем важно обратить внимание, что маркер .file используется для представления информации о других ассоциируемых с многофайловой сборкой модулях (в данном случае — auto.netmodule), а маркеры .class extern — для перечисления имен внешних типов, которые упоминаются как используемые во второстепенном модуле (в данном случае — Auto). Ниже приведена соответствующая информация:

Лабораторна робота №8

Література

1.Кросплатформне програмування: конспект лекцій // Укладач Коротун Т.М. - К. : МНТУ.– 2011

2.http://msdn.microsoft.com/ru-ru/library/bb546200(v=vs.90).aspx - Пошаговое руководство. Создание базы данных SQL Server Compact 3.5

3. Культин Н.Б. Microsoft Visual C# в задачах и примерах. – СПб.: БХВ-Петербург, 2009. -320 с.

4. Уотсон К., Нейгел К, и др. "Visual C# 2008. Базовый курс", Wiley Publishing, 2009. - 1211с

 

Лабораторна р о бота №1.

Ос нови ро боти з MS Visual Studio , м ова С #

Ціль роботи

Опрацювати основні поняття кросплатформного програмування. Ознайомитися з середовищем MS VisualStudio та С#, особливостями розробки додатків, опанувати інструментальними засобами

 

Дата: 2019-02-25, просмотров: 235.