Статьи

НОУ ІНТУЇТ | лекція | Створення головного меню програми

  1. Вказівки щодо використання .NET
  2. створення меню
  3. Завдання на лабораторну роботу

Мета роботи: Вивчити основні способи розробки головного меню додатку. Отримати практичні навички у створенні головного меню програми.

Вказівки щодо використання .NET

У будь-якій мові програмування існують традиційні стилі програмування. Ці стилі є не частиною самої мови, а угодами, скажімо, по іменування змінних або використання певних класів, методів або функцій. Якщо більшість розробників будуть слідувати однаковим угодами, то їм буде простіше зрозуміти код один одного, що, в свою чергу, полегшує підтримку програми. Так, загальним угодою в Visual Basic 6 було те, що рядкові змінні повинні мати імена, що починаються з s або str, наприклад String sResult або String strMessage. Однак угоди залежать від мови і середовища розробки. Програмісти на C ++ для платформи Windows традиційно використовують префікс psz або lpsz для позначення рядків: char * pszResult; char * lpszMessage; . Але на Unix-машинах такі префікси не застосовуються: char * Result; char * Message; .

Відповідно до угод в С # імена змінних не повинні мати префіксів: string Result; string Message; .

Угода, згідно з яким імена змінних містять префікс, який вказує тип даних, відомо як "угорський" стиль іменування об'єктів. При читанні такого коду розробники можуть відразу ж сказати по імені змінної, який тип даних вона представляє.

У той час як для багатьох мов угоди по іменування вироблялися одночасно з розвитком мови, для С # і платформи .NET Microsoft написала докладні рекомендації по використанню, які наведені в документації MSDN для .NET / C #. Отже, з самого початку програми .NET матимуть вищий рівень сумісності за частиною розуміння коду іншими розробниками. Ці рекомендації були розроблені з урахуванням досвіду, отриманого протягом більше двадцяти років об'єктно-орієнтованого програмування, і в результаті є ретельно продуманими і добре сприйняті спільнотою розробників.

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

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

Очевидно, що назви мають відображати призначення елемента і не повинні конфліктувати з іншими іменами.

Загальна філософія платформи .NET полягає в тому, що ім'я змінної повинно відображати призначення примірника змінної, а не тип даних.

Наприклад, Height - гарна назва, a IntegerValue - немає. Однак цей принцип є важкодосяжним ідеалом. Зокрема, при роботі з елементами управління в більшості випадків вам буде зручніше використовувати імена змінних, подібні ConfirmationDialog і ChooseEmployeeListBox.

Конкретні рекомендації по іменування включають в себе наступні розділи.

У переважній більшості випадків для імен слід використовувати стиль Pascal, при якому перша буква кожного слова в назві є прописаний

Наприклад: EmployeeSalary, ConfirmationDialog, PlainTextEncoding.

З'єднання слів за допомогою знака підкреслення не вітається, тому не придумуйте такі імена, як employee_salary. В інших мовах часто використовують всі великі літери в назвах констант. Це не рекомендується в С #, оскільки такі імена важко читати, краще застосовувати паскалевская стиль:

Ще одна рекомендована схема - іменування в стилі camel. Іменування camel аналогічно паскалевская стилю, за винятком того, що перша буква першого слова не є прописаний: employeeSalary, confirmationDialog, plainTextEncoding.

Існують дві ситуації, в яких краще застосовувати таке іменування. Імена всіх параметрів, що передаються в методи, повинні записуватися в стилі camel:

public void RecordSale (string salesmanName, int guanuity);

Також можна використовувати camel -соглашеніе для того, щоб відрізнити два елементи, які в іншому випадку мали б однакові імена. Найбільш загальний випадок, коли властивість є оболонкою для поля.

private string employeeName; public string EmployeeName {get {return employeeName; }}

Наведений код є абсолютно коректним з точки зору рекомендацій. Відзначимо, однак, що в цьому випадку слід застосовувати угоду camel для закритих членів і угоду Pascal для відкритих або захищених членів, щоб інші класи, які використовують ваш код, бачили тільки імена в стилі Pascal (за винятком імен параметрів).

У більшості випадків слід застосовувати угоди Pascal. Проте, угода camel рекомендується для закритих змінних, які не видно поза класом, де дві змінні мають однакове призначення. Наприклад, якщо є public властивість, яке інкапсулює private поле з тим же ім'ям, то можна використовувати угоду camel для поля і угоду Pascal для властивості, як в наведеному вище прикладі EmployeeName.

Також необхідно звертати увагу на чутливість до регістру. С # чутливий до регістру, тому синтаксично в С # допустимо, щоб імена розрізнялися лише регістром. Однак потрібно пам'ятати, що ваші збірки можуть бути викликані з додатків VB.NET, a VB.NET не є чутливим до регістру. Тому використовувати імена, що відрізняються тільки регістром, можна лише в тому випадку, якщо вони ніколи не будуть видні поза збірки. В іншому випадку код, написаний в VB.NET, не зможе коректно використовувати вашу збірку.

Необхідно по можливості робити так, щоб стиль всіх імен збігався. Наприклад, якщо один з методів в класі називається ShowConfirmationDialog, то іншого методу не слід давати ім'я ShowDialogWarning або WarningDialogShow. Він повинен називатися ShowWarningDialog.

Імена просторів імен слід вибирати особливо ретельно для того, щоб уникнути використання такого ж імені, яке застосовується десь ще. Необхідно пам'ятати, що .NET розрізняє імена об'єктів в поділюваних збірках тільки по іменах просторів імен. Якщо використовувати для двох пакетів програмного забезпечення одне і те ж ім'я простору імен і встановити обидва пакети на один комп'ютер, виникнуть проблеми. Рекомендується створювати простір імен верхнього рівня з ім'ям вашої компанії, а потім вкладати простору імен, поступово звужуючи їх назви до технології, групи або відділу, де ви працюєте, або до назви пакета, для якого призначені ваші класи. Microsoft рекомендує імена просторів імен, які починаються з <НазваніеКомпаніі>. <НазваніеТехнологіі>, наприклад,

WeaponsOfDestructionCorp.RayGunControllers

або

WeaponsOfDestructionCorp.Viruses.

Імена не повинні конфліктувати з ключовими словами. Якщо спробувати в програмі назвати елемент на ім'я одного з ключових слів С #, це практично завжди викличе синтаксичну помилку., Так як компілятор припустить, що ім'я відповідає оператору.

створення меню

У просторі імен System.Windows.Forms передбачена велика кількість типів для організації спадаючих головних меню (розташованих у верхній частині форми) і контекстних меню, що відкриваються по кліку правої кнопки миші.

Елемент управління ToolStrip являє собою контейнер, який використовується для створення структур меню, панелей інструментів і рядків станів.

Елемент управління MenuStrip - це контейнер для структур меню в додатку. Цей елемент управлінні успадковується від ToolStrip. Система меню будується додаванням об'єктів ToolStripMenu до menuStrip.

Клас ToolStripMenuItem служить для побудови структур меню. Кожен об'єкт ToolStripMenuItem представляє окремий пункт в системі меню.

Почнемо зі створення стандартного спадаючого меню, яке дозволить користувачеві вийти з програми, вибравши пункт Об'єкт> Вихід. Для цього необхідно перетягнути елемент управління MenuStrip ( малюнок 2.1 ) На форму в конструкторі.

Елемент управління MenuStrip дозволить вводити текст меню безпосередньо в елементи меню. Те, що повинно статися, представлено на малюнку 2.2 .


Мал.2.2.

Просте меню на формі

За допомогою графічних засобів можна налаштувати властивості будь-якого пункту меню. Для пункту меню "Об'єкт" задамо властивість Name рівним objektToolStripMenuItem, для пункту меню "Вихід") - exitToolStripMenuItem, а для пункту меню "Довідка" - HelpToolStripMenuItem.

При подвійному натисканні на пункті меню "Вихід" (об'єкт exitToolStripMenuItem) Visual Studio автоматично згенерує оболонку для обробника події Click і перейде у вікно коду, в якому нам буде запропоновано створити логіку методу (в нашому випадку exitToolStripMenuItem_Click):

private void exitToolStripMenuItem_Click (object sender, EventArgs e) {// Тут ми визначаємо реакцію на вибір користувачем // пункту меню}

На вкладці Властивості (Properties) при виведенні вікна подій, натиснути кнопку На вкладці Властивості (Properties) при виведенні вікна подій, натиснути кнопку   події Click буде відповідати метод menuItemExit_Click (   малюнок 2 події Click буде відповідати метод menuItemExit_Click ( малюнок 2.3 ).


Мал.2.3.

Подія Click і обробник події exitToolStripMenuItem_Click

Для коректного завершення програми написати код для обробника exitToolStripMenuItem_Click. Це можна зробити за допомогою методу Exit класу Application:

private void exitToolStripMenuItem_Click (object sender, EventArgs e) {Application.Exit (); }

Для тестування створеного меню створимо обробник для пункту меню "Об'єкт", який буде повідомляти, що обраний саме цей пункт меню.

private void objektToolStripMenuItem_Click (object sender, EventArgs e) {MessageBox.Show ( "Пункт меню Об'єкт"); }

При створенні меню графічними засобами Visual Studio автоматично внесе необхідні зміни в службовий метод InitializeComponent і додасть змінні-члени, що представляють створені елементи меню.

Завдання на лабораторну роботу

  1. Вивчити теоретичний матеріал.
  2. Створити головне меню, яке включає наступні пункти: "Об'єкт", "Довідник", "Довідка".
  3. Для пункту "Об'єкт" створити такі підпункти: "Співробітник", "Клієнт", "Договір", "Доручення", "Операція", "Вихід".
  4. Для пункту "Довідник" створити такі підпункти: "Посада", "Країна", "Регіон", "Місто", "ІМНС".
  5. Для пункту "Довідка" створити підпункт - "Про програму"
  6. Протестувати роботу програми.

Новости