Вот как она выглядит:

На ней отображены только некоторые элементы, скорее всего из которых вы все видели в той или иной программе.
То, что тут отображено, не составляет даже 1% от всего, что можно использовать на форме. Формам посвящён целый раздел сайта.
Для создания формы в C# необходимо проделать следующее:
Выберите "Создать проект". Если у вас уже запущена другая программа в C#, то вызвать это окно можно через Меню/Вид/Начальная страница.

В появившемся окне выберите то, что указано:

Появится вот это. Нажмите правую кнопку:

Выберите "Перейти к коду" и увидите вот такой код:
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
[/code]
Мы будем разрабатывать элементарный калькулятор.
Вам понадобится как код, так и форма. Переключаться между ними вы сможете через вот такое меню

Теперь, используя вот эту панель элементов

перенесите на форму элементы Label (2 шт.), TextBox (2 шт.), ComboBox (1 шт.) и Button (2 шт.)
Если панели элементов нигде нет, её можно включить через Меню/Вид/Панель элементов
У вас получится примерно так:

Теперь, щёлкая одинарным щелчком любой из элементов, справа (у меня так
настроено) или слева у вас в панели "Свойства" будут отображены свойства ЭТОГО элемента. Если панели свойств нет, её можно включить через Меню/Вид/Окно свойств.
При этом обратите внимание, что при выборе элемента его имя указано сверху панели

Кто это читает первый раз и пробует, наверняка случайно делал
двойной щелчок по элементам и попадал сюда:
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
[/code]
Пока не обращайте внимание, это уберём в конце статьи. Просто удалить сейчас не получится, т.к. будет ошибка. Внизу описано, как правильно эти "случайности" убирать. Пока просто переключитесь на форму и читайте далее.
Выбирая каждый элемент, необходимо найти его свойство Text и изменить.
Например, выберите label1, зайдите в свойства и измените его свойство Text на "Первое число"

Щёлкните мышью в другом месте или нажмите Enter
На форме измените label1 на Первое число

Теперь по тому же принципу измените текст для остальных элементов, меняйте позицию элементов и их ширину (думаю, это объяснять не надо) чтобы было так:

"Вывод сюда" - означает, что результат будет выводиться на форму. А соответственно, нужен ещё один элемент label.
Добавьте его, найдите его свойство Text, измените на "0". Найдите свойство Font и измените так, чтобы было, как на форме

Для вызова окна редактирования текста в свойстве Font справа будут "...", отображённые на скрине красным квадратиком

И последнее, осталось изменить имя формы. Для этого щёлкните в пустом месте формы 1 раз. В окне свойств вверху будет подписано "Form1". Найдите его свойство Text и измените на "Калькулятор", а так же ряд других свойств:

FormBorderStyle - чтобы ширину и высоту формы нельзя было менять во время её выполнения
MaximizeBox (false) - отключить на форме кнопку увеличения окна
MinimizeBox (false) - отключить на форме кнопку минимизации окна
Text - это описано было выше
Итого, получаем такую форму:

Теперь можно приступать к коду.
Элемент ComboBox пока не трогаем. С ним чуть позже.
Сделайте двойной щелчок на первой кнопке "Вывод сюда".
Если вы делали случайные двойные щелчки на других элементах, пока читали статью, то будет примерно так:
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
//Курсор будет тут
}
}
}
[/code]
Если же это был первый двойной щелчок, то будет так:
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Курсор будет тут
}
}
}
[/code]
В коде, где написано "//Курсор будет тут" надо написать:
[code]
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
[/code]
Это позволит прочитать число в текстовых полей textBox1 (поле для первого числа) и textBox2 (поле для второго числа). И тут же конвертировать их в числа.
Подробности смотрите тут:
конвертировать строку в число
Теперь результат надо вывести в label3, который на форме у нас отображён большим нулём.
Добавляем строку и получаем такой полный код:
[code]
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
label3.Text = (n1 + n2).ToString();
[/code]
Проверим, как у нас всё работает. Запустите программу через F5.
Теперь введите на форме два произвольных числа (без каких-либо пробелов, других символов) и нажмите первую кнопку

Внизу сразу отобразится результат.
При запуске не путайте нарисованную форму проекта и саму запущенную программу

Для того, чтобы вернуться в код, надо закрыть программу.
Если вы в коде, а программа запущена, оставить её выполнение можно через Shift+F5.
Теперь напишем код для 2 кнопки. Вернитесь на форму. Сделайте двойной щелчок по второй кнопке.
И напишите такой код:
[code]
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
MessageBox.Show((n1 + n2).ToString());
[/code]
Запустите программу. Введите 2 произвольных числа и нажмите 2 кнопку.
Увидите это:
Теперь вернёмся к ComboBox. Это выпадающий список, в который мы внесём 4 арифметических знака.
Остановите программу, если она запущена.
Вернитесь на вкладку конструктора формы. Выберите ComboBox-элемент.
В окне свойств измените свойство Items через "...", которые появятся там, где указано квадратиком.

Внесите данные и нажмите "ОК".
Теперь надо внести изменения в код.
Для первой кнопки так:
[code]
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
label3.Text = r.ToString();
[/code]
Для второй кнопки так:
[code]
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
MessageBox.Show(r.ToString());
[/code]
Запустите программу. Выберите нужное арифметическое действие

Если вы ничего не выберите, тогда результатом будет 0, т.к. comboBox1.SelectedIndex = -1 при этом. А на значение -1 нет прописанных
условий
В программе не предусмотрены возможные ошибки при вводе текстовых полей, пустоты, деления на 0, иначе статья будет очень длинной. Суть статьи - описать понятие формы, её элементов и элементарного кода для них.
Последнее, что осталось сделать, это убрать лишний код, который случайно у нас получился при двойном щелчке на элементе. У меня сейчас код выглядит так:
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
MessageBox.Show(r.ToString());
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
label3.Text = r.ToString();
}
}
}
[/code]
Видим, что Form1_Load и textBox2_TextChanged нам не нужны. Удаляем. Для красоты можете коды кнопок 1 и 2 переставить местами. Получится так:
[code]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
label3.Text = r.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
int n1 = int.Parse(textBox1.Text);
int n2 = int.Parse(textBox2.Text);
int r = 0;
if (comboBox1.SelectedIndex == 0) r = n1 + n2;
if (comboBox1.SelectedIndex == 1) r = n1 - n2;
if (comboBox1.SelectedIndex == 2) r = n1 * n2;
if (comboBox1.SelectedIndex == 3) r = n1 / n2;
MessageBox.Show(r.ToString());
}
}
}
[/code]
Однако при запуске теперь выходит вот что:

Нажмите "Нет".
Получаем список критических ошибок

Двойным щелчком переходим на одну из них:
И видим что-то подобное этому:
[code]
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(128, 30);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 20);
this.textBox1.TabIndex = 2;
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(128, 59);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 20);
this.textBox2.TabIndex = 3;
this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
//
// button1
//
this.button1.Location = new System.Drawing.Point(25, 174);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(102, 43);
this.button1.TabIndex = 4;
this.button1.Text = "Вывод сюда";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(142, 174);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(109, 43);
[/code]
В этом коде ошибочной является строка
[code]
this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
[/code]
она будет подчёрнута на месте "textBox2_TextChanged". Это означает, что сейчас у нас этот код обращается к обработчику, который мы только что удалили. Это нужно убрать. Всю строку. Тогда для textBox2 будет описание не из 5 строк
[code]
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(128, 59);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 20);
this.textBox2.TabIndex = 3;
this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged);
[/code]
а из 4
[code]
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(128, 59);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(100, 20);
this.textBox2.TabIndex = 3;
[/code]
Нажмите F6 для повторной проверки кода, но при этом программа не запустится

Видим, что ошибок стало на 1 меньше.
Повторяем процедуру
Через двойной щелчок попадаем сюда:
[code]
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Controls.Add(this.label3);
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Form1";
this.Text = "Калькулятор";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
this.PerformLayout();
[/code]
и видим, что Form1_Load подчёркнут. Удаляем всю строку.
Теперь при запуске F6 - пустое окно с ошибками (значит всё успешно исправлено)
F5 - нормальный запуск