C#

Windows Forms

Лінійні програми

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

  1. Файл, Створити, Проект
  2. На початковій сторінці: Створити проект
  3. У вікні Створення проекта: Visual C#, Додаток Windows Forms, вводимо ім'я створюваного проекту, ОК.
  4.  Після створення проекту працюємо у вікні  проекту.

 

Компоненти для форми обираємо на Панелі елементів, а властивості для них у вікні Властивості.

  1. Із панелі елементів перетягуємо у форму елементи управління, необхідні для конкретного завдання проекту
  2. Робимо його активним і у вікні Властивості вказуємо потрібні нам властивоcті елемента управління
  3. Обираємо елемент управління (наприклад, кнопку)
  4. Двічі клацаємо кнопку, щоб додати оброблювач подій Click. Відкриється редактор коду, при цьому положення курсора виявиться всередині обробника подій.
  5. Наприклад, додаємо: MessageBox.Show ("Тут пишемо коментар до завдання");
  6. Тиснемо клавішу F5 для запуску додатку. Коли додаток запущено, натиснути кнопку і перевірити, чи відображається вказана фраза
  7. Закриваємо форму Windows Forms, щоб повернутися в Visual Studio.

Є кілька способів встановити компонент на форму.

  1. Перетягніть компонент на форму, утримуючи ліву кнопку миші. При цьому компонент буде створений в тій точці, де ви його кинули, а розміри будуть установлені за замовчуванням 
  2. Двічі клацнути по кнопці компонент. При цьому компонент буде створений в довільній точці, а розміри будуть встановлені за замовчуванням. 
  3. Клацнути на потрібному компоненті, щоб виділити його. Клацнути на формі, щоб встановити компонент. При цьому компонент буде створено в тій точці, де ви клацнули, а розміри будуть встановлені за замовчуванням. 
  4. Клацнути на потрібному компоненті, щоб виділити його. Натиснути ліву кнопку миші на формі і протягнути курсор до потрібних розмірів на формі, щоб установити компонент. При цьому компонент буде створено в тій точці, де ви клацнули, а розміри будуть встановлені відповідно до змальованих на формі прямокутником. 

Деякі корисні класи з простору імен System.Windows.Forms
Приклади класів елементів управління, які можна розміщувати на формах.

  • Label (Мітка)
  • Button (Кнопка)
  • ListBox (Список)
  • CheckBox (Прапорець)
  • RadioButton (Перемикач)
  • MessageBox (Вікно повідомлень)
  • Menu (Меню)
  • TabControl (Управління вкладками)
  • Toolbar (Панель інструментів)
  • TreeView (Дерево)
  • DataGrid (Сітка даних)
  • PictureBox (Зображення)

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

Основні властивості:

  • Name: встановлює ім'я форми - точніше ім'я класу, який успадковується від класу Form
  • BackColor: вказує на фоновий колір форми. Клацнувши на цю властивість, ми зможемо вибрати той колір, який нам підходить зі списку запропонованих кольорів або кольорової палітри
  • BackgroundImage: вказує на фонове зображення форми
  • BackgroundImageLayout: визначає, як зображення, задане у властивості BackgroundImage, буде розташовуватися на формі.
  • ControlBox: вказує, чи відображається меню форми. В даному випадку під меню розуміється меню самого верхнього рівня, де знаходяться іконка програми, заголовок форми, а також кнопки мінімізації форми і хрестик. Якщо ця властивість має значення false, то ми не побачимо ні іконку, ні хрестика, за допомогою якого зазвичай закривається форма
  • Cursor: визначає тип курсора, який використовується на формі
  • Enabled: якщо ця властивість має значення false, то вона не зможе отримувати введення від користувача, тобто ми не зможемо натиснути на кнопки, ввести текст в текстові поля і т.д.
  • Font: задає шрифт для всієї форми і всіх поміщених на неї елементів управління. Однак, задавши у елементів форми свій шрифт, ми можемо тим самим перевизначити його
  • ForeColor: колір шрифту на формі
  • FormBorderStyle: вказує, як буде відображатися межа форми і рядок заголовка. Встановлюючи цю властивість в None можна створювати зовнішній вигляд програми довільної форми
  • HelpButton: вказує, чи відображається кнопка довідки форми
  • Icon: задає іконку форми
  • Location: визначає положення по відношенню до верхнього лівого кута екрана, якщо для властивості StartPosition встановлено значення Manual
  • MaximizeBox: вказує, чи буде доступна кнопка максимізації вікна в заголовку форми
  • MinimizeBox: вказує, чи буде доступна кнопка мінімізації вікна
  • MaximumSize: задає максимальний розмір форми
  • MinimumSize: задає мінімальний розмір форми
  • Opacity: задає прозорість форми
  • Size: визначає початковий розмір форми
  • StartPosition: вказує на початкову позицію, з якою форма з'являється на екрані
  • Text: визначає заголовок форми
  • TopMost: якщо ця властивість має значення true, то форма завжди буде знаходитися поверх інших вікон
  • Visible: чи видима форма, якщо ми хочемо приховати форму від користувача, то можемо поставити даній властивості значення false
  • WindowState: вказує, в якому стані форма буде знаходитися при запуску: в нормальному, максимізованому або мінімізованому.

Панель вкладок TabControl 

TabControl

Елемент TabControl дозволяє створити елемент управління з декількома вкладками. І кожна вкладка буде зберігати деякий набір інших елементів управління, як кнопки, текстові поля і ін. Кожна вкладка представлена класом TabPage.

Щоб налаштувати вкладки елемента TabControl використовуємо властивість TabPages. При перенесенні елемента TabControl з панелі інструментів на форму за замовчуванням створюються дві вкладки - tabPage1 і tabPage2. Змінимо їх відображення за допомогою властивості TabPages. Нам відкриється вікно редагування / додавання і видалення вкладок:

  

Кожна вкладка представляє свого роду панель, на яку ми можемо додати інші елементи управління, а також заголовок, за допомогою якого ми можемо перемикатися по вкладках. Текст заголовка задається за допомогою властивості Text.

Тренувальні вправи

1. Обчислити периметр і площу трикутника за відомими довжинами сторін. Зобразити малюнок трикутника у віконному додатку.

private void button1_Click(object sender, EventArgse)

{
double a, b, c, S, P;
a = double.Parse(textBox1.Text);
b = double.Parse(textBox2.Text);
c = double.Parse(textBox3.Text);
P=a+b+c;
S = Math.Sqrt(P / 2 * (P / 2 - a) * (P / 2 - b) * (P /2 - c));
label6.Text = P.ToString();
label7.Text = S.ToString();
}

2. Обчислити  об’єм і площу поверхні кулі за відомим радіусом. Зобразити малюнок кулі у віконному додатку.

private void button1_Click(object sender, EventArgse)

{

double r, S, V;

r = double.Parse(textBox1.Text);

V = r * r * r * Math.PI*4/3;

S = 4 * r * r * Math.PI;
label6.Text = V.ToString();
label7.Text = S.ToString();
}

3. Обчислити опір при послідовному і паралельному з’єднанні двох резисторів із відомими опорами. Зобразити малюнки послідовного і паралельного з’єднання двох резисторів у віконному додатку.

private void button1_Click(object sender, EventArgse)

{
double r1,r2,A1,A2;
r1 = double.Parse(textBox1.Text);
r2 = double.Parse(textBox2.Text);
A1 = r1+r2;
A2 =1 /( (1 / r1) + (1 / r2));
label6.Text = A1.ToString();
label7.Text = A2.ToString();

}

4. Задача про квадрат

private void
button1_MouseClick(object sender, MouseEventArgs e)

{
double a, p, s, ro, rv;

a = double.Parse(textBox1.Text);

p = 4 * a;

s = a * a;

ro = a * Math.Sqrt(2) / 2;

rv = a / 2;

label4.Text = p.ToString();
label6.Text = s.ToString();
label10.Text = ro.ToString();
label8.Text = rv.ToString();

}

5. Задача про рівносторонній трикутник

private void  button1_MouseClick(object sender, MouseEventArgs e)

{

double a, p, s, ro, rv;

a = double.Parse(textBox1.Text);

p = 3 * a;

s = a * a * Math.Sqrt(3) / 4;

ro =a * Math.Sqrt(3) / 2;

rv = ro / 2;

label4.Text = p.ToString();

label6.Text = s.ToString();

label10.Text = ro.ToString();

label8.Text = rv.ToString();
}

6. Задача про куб

private void  button1_MouseClick(object sender, MouseEventArgse)

{

double a, sp, v, dok, dvk;
a = double.Parse(textBox1.Text);
sp = 6 * a*a;
v = a * a*a;
dok =a * Math.Sqrt(3);
dvk = a;
label5.Text = sp.ToString();
label7.Text = v.ToString();
label9.Text = dok.ToString();
label11.Text = dvk.ToString();
}

7. Задача про курочку Рябу

private void button1_Click(object sender, EventArgs e)
        {
            int k, S;
            k = int.Parse(textBox1.Text);
            S = 5 + 10 * k;
            textBox2.Text = S.ToString();
        }

Вправа 45. Із тераріуму втекли x гадюк,  y кобр та z гюрз. Довжина кожної гадюки - 1 м, кожної кобри - 1 м 30 см, а гюрзи - 1 м 15 см. Скільки повних метрів отруйних змій утекло з тераріуму? Яку довжину вони складають у сантиметрах?

private void button1_Click(object sender, EventArgs e)
        {
            double ga, ko, gy, d, dcm;
            ga = double.Parse(textBox1.Text);
            ko = double.Parse(textBox2.Text);
            gy = double.Parse(textBox3.Text);
            dcm = ga*100 + ko*130 + gy*115;
            d = (dcm - dcm % 100) / 100;
            textBox4.Text = d.ToString();
            textBox5.Text = dcm.ToString();
        }

Вправа 46. У цариці Несміяни кругле обличчя, радіус якого дорівнює R. Визначте довжину сторони такого дзеркала квадратної форми, щоб коли Несміяна милується собою, її відображення поміщалося в дзеркалі.

Вправа 74. Підприємство поклало в банк на депозитний рахунок суму в S тисяч гривень під 40% річних. Яку суму зніме підприємство в кінці року?

Вправа 75. У класі - N учнів, з них - М - хлопці. Знайдіть співвідношення у відсотках кількості хлопців до кількості дівчат цього класу.

Завдання для тематичної атестації з теми 

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

Готуємо проект для  тематичної атестації (Продумайте алгоритм виконання подібного завдання з використанням кількох форм чи вкладок на одній формі)

Для виконання проекту скористатися компонентом TabControl

 Зразки вкладок форм для проекту подаються тут (решту вкладок оформити подібним чином). Вкладку "Довільний трикутник" оформіть за даним зразком та додайте 4 порожні форми до кожної вказаної умови задачі (Проект, Додати форму Windows, вказати форму C#, ОК, заповніть ці форми згідно потреб задач, зразок надається).

       

Підключення 2 форми (після натиснення кнопки запуску умови задачі 1: Обчислити площу трикутника за трьома даними сторонами):

Hide();
Form2 Умова1 = new Form2();
Умова1.ShowDialog(); 
Close();

Форму 2 з розв'язком задачі програмувати аналогічно попереднім вправам

Решта - аналогічно.