Программирование
Веб программирование

Первая визуальная программа на Visual C#

 
 

 

Или создаем 3D калькулятор O_o

Сегодня мы продолжим изучение Visual C#.Net начатое LULZman, и созданим первую визуальную программу. 

Открой компилятор Visual C#.Net, если у тебя его нет, то скачай на странице «Скачать Visual Studio 2010»

Нажми File → New → Project..

Откроется окно: 

 

В котором выбери Windows Forms Application

Откроется форма, и на ней расположи 3 текстовых поля (объект TextBox), и 5 кнопок (Button). Объекты которые можно расположить на форме находятся в панели ToolBox: 

 

 

У кнопок поменяй свойства Text на следующие: 

У button1 свойство Text будет CE

У button2 свойство Text будет X

У button3 свойство Text будет /

У button4 свойство Text будет -

У button5 свойство Text будет +

Свойства меняются на панели свойств, она выглядет так: 

Если ты все делал правильно, у тебя получиться следующая картинка: 

Вот код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /*
         * Очистка текстовых полей
         */
        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = null; //Очистка текстовых полей, null - это пустота ))
            textBox2.Text = null;
            textBox3.Text = null;
        }

        /**
         * Умножение 
         */
        private void button2_Click(object sender, EventArgs e)
        {
            double result = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text);
            textBox3.Text = result.ToString();
        }

        /**
         * Деление
         */ 
        private void button3_Click(object sender, EventArgs e)
        {
            if (Convert.ToInt32(textBox2.Text) != 0) // Если текстовое пое 2 не равно 0 (помни!!! делить на 0 нельзя!)
            {
                double result = Convert.ToDouble(textBox1.Text) / Convert.ToDouble(textBox2.Text);
                textBox3.Text = result.ToString();
            }
            else textBox3.Text = "0"; //Если все же решил делить на 0, то на выхлопе делаем тоже 0
        }

        /*
         * Вычетание
         */ 
        private void button4_Click(object sender, EventArgs e)
        {
            double result = Convert.ToDouble(textBox1.Text) - Convert.ToDouble(textBox2.Text);
            textBox3.Text = result.ToString();
        }

        /*
         * Сложение
         */ 
        private void button5_Click(object sender, EventArgs e)
        {
            double result = Convert.ToDouble(textBox1.Text) + Convert.ToDouble(textBox2.Text);
            textBox3.Text = result.ToString();
        }
    }
}

Теперь небольшое описание кода:

double result = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text);

К переменной result с типом double присваиваем значение текстовых полей, которые умножаем между собой.

Чтобы получить значение текстового поля пишем имя текстового поля(textBox1), и свойство Text (textBox1.Text).

Но почему мы не написали так: textBox1.Text * textBox1.Text ??

А потому что в текстовом поле храниться текст, а при умножении нам нужно использовать числа.

И мы при помощи функции Convert.ToDouble меняем тип со строковой в числовую (с плавующей точкой, т.к. возможно нам придется умножать дроби).

Дальше результат, который храниться в переменной result записываем в текстовое поле 3, при этом меняем тип обратно, в строковой:

textBox3.Text = result.ToString();

Скачать исходник калькулятора


Есть вопросы? Спроси на нашем форуме!!
ReDoX [04.08.2012 16:27]

textBox3.Text = result.ToString(), а зачем() ставить?

ReDoX [20.08.2012 04:32]

все разобрался

Assassin [27.09.2012 19:42]

операцию очистки и умножения проводит, а остальные нет... в чём проблема

Федор [14.10.2012 01:41]

Создал все, без ошибок, есть сам калькулятор, но при нажатии ничего не происходит, а в вашем исходнике все работает, не знаете почему так может быть?

Кит [20.11.2012 13:12]

Огромное спасибо за наинагляднейший пример!!!

Cyliazar [23.11.2012 00:40]

Наигромнейшее спасибо!!! По твоему руководству написал свою первую прогу по расчету оплаты за свет

brova [13.02.2013 12:41]

Не работала очистка полей, писало, что text нельзя преобразовать в null.
Сделал так:
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "0";

Phoenix222210 [04.05.2014 11:43]

Создал калькулятор. Все работает отлично. Спасибо за урок!

Progers300 [04.05.2014 12:24]

Phoenix2222,Теперь попробуйте калькулятор с кнопками!

sv251200 [07.06.2014 18:11]

Сам сделал, не прочитав статью:



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 Калькулятор
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1Click(object sender, EventArgs e)
{
numericUpDown1.Value = 0;
numericUpDown2.Value = 0;
numericUpDown3.Value = 0;
}

private void button3
Click(object sender, EventArgs e)
{
numericUpDown3.Value = numericUpDown2.Value / numericUpDown1.Value ;
}

private void button2Click(object sender, EventArgs e)
{
numericUpDown3.Value = numericUpDown2.Value * numericUpDown1.Value;
}

private void button4
Click(object sender, EventArgs e)
{
numericUpDown3.Value = numericUpDown2.Value - numericUpDown1.Value;
}

private void button5_Click(object sender, EventArgs e)
{
numericUpDown3.Value = numericUpDown2.Value + numericUpDown1.Value;
}
}
}

DealxxZemx [13.07.2016 15:37]

ДЛЯ ТЕХ У КОГО ПРИ НАЖАТИИ НА КНОПКИ НИЧЕГО НЕ ПРОИСХОДИТ!!!!!
не знаю почему об этом ничего не сказал автор статьи...короче..
После создания всех кнопок в конструкторе, открывайте редактор кода двойным нажатием по нужной кнопке. Будет открываться код и автоматом вписываться пустое тело (
private void button5_Click(object sender, EventArgs e)
{

}
)
В которое и пишите нужный функционал.



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.