C# tutorial- GUI: a simple calculator

C# GUI



C# Calculator

In the previous sections, we displayed text in console window (black background window). In this section, you will learn to use window forms and other useful components and controls to create GUI applications that increase interactivity.

 

Step1: Create a project (Windows Forms Application)

 

Step2: Design interface


  -Click on Toolbox in the left site to extend it. You will a list of controls as shown in below:

 


  -Drag and drop one textbox and rename it to txtbox(change text in Name field of the properties window to txtbox).

Note: To open Properties window of a control, right-click the control and click Properties.
  -Drag and drop 21 command buttons
  -Rename button0 to cmd0, button1 to cmd1, button2 to cmd2, button3 to cmd3,   button4 to cmd4, button5 to cmd5, button6 to cmd6, button7 to cmd7, button8 to cmd8, button9 to cmd9, button10 to cmdequal, button11 to cmdclear, button 12 to cmdadd, button13 to cmdsubtract, button14 to cmdmultiply, button15 to cmddivide, button16 to cmdsquare, button17 to cmdsqtr, button 18 to cmdcos, button19 to cmd sin, button20 to cmdtan.
  -The caption of each button also needs to be changed. For example, you need to change the caption of button0 to 0, button1 to 1, button 2 to 2...etc.

Step3: Write code

To attach code to a control, you need to double-click the control to open code editor. And then you just copy code and paste it where it is possible.

 

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 CWindowGUI

{

    public partial class Calculator : Form

    {

        //global variables

      string sign;

        double val1;

        double val2;

        int trackkeypoint=0;

 

        public Calculator()

        {

            InitializeComponent();

        }

 

        private void cmd0_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text+cmd0.Text;

        }

 

        private void cmd1_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd1.Text;

        }

 

        private void cmd2_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd2.Text;

        }

 

        private void cmd3_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd3.Text;

        }

 

        private void cmd4_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd4.Text;

        }

 

        private void cmd5_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd5.Text;

        }

 

        private void cmd6_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd6.Text;

        }

 

        private void cmd7_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd7.Text;

        }

 

        private void cmd8_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd8.Text;

        }

 

        private void cmd9_Click(object sender, EventArgs e)

        {

            txtbox.Text = txtbox.Text + cmd9.Text;

        }

 

        private void cmdequal_Click(object sender, EventArgs e)

        {

            val2 =double.Parse(txtbox.Text);

            double result;

            if (sign == "+")

            {

                result = val1 + val2;

                txtbox.Text =result.ToString();

            }

            else if (sign == "-")

            {

                result = val1 - val2;

                txtbox.Text = result.ToString();

            }

            else if (sign == "*")

            {

                result = val1 * val2;

                txtbox.Text = result.ToString();

            }

            else

            {

                result = val1 / val2;

                txtbox.Text = result.ToString();

            }

          

        }

 

        private void cmdclear_Click(object sender, EventArgs e)

        {

            //clear Texts

            txtbox.Text = "";

            val1 = 0;

            val2 = 0;

            sign = "";

        }

 

        private void cmdcos_Click(object sender, EventArgs e)

        {

           double v;

           v = double.Parse(txtbox.Text);

           txtbox.Text=Math.Cos(v).ToString();

        }

 

        private void cmdsin_Click(object sender, EventArgs e)

        {

            double v;

            v = double.Parse(txtbox.Text);

            txtbox.Text = Math.Sin(v).ToString();

        }

 

        private void cmdsquare_Click(object sender, EventArgs e)

        {

            double v;

            v = double.Parse(txtbox.Text);

            txtbox.Text = Math.Pow(v,2).ToString();

        }

 

        private void cmdsqrt_Click(object sender, EventArgs e)

        {

            double v;

            v = double.Parse(txtbox.Text);

            txtbox.Text = Math.Sqrt(v).ToString();

        }

 

        private void cmdtan_Click(object sender, EventArgs e)

        {

            double v;

            v = double.Parse(txtbox.Text);

            txtbox.Text = Math.Tan(v).ToString();

        }

 

        private void cmdsubtract_Click(object sender, EventArgs e)

        {

           sign = "-";

           val1 = double.Parse(txtbox.Text);

           txtbox.Text = "";

        }

 

        private void cmdplus_Click(object sender, EventArgs e)

        {

            sign = "+";

            val1 = double.Parse(txtbox.Text);

            txtbox.Text = "";

        }

 

        private void cmdmultiply_Click(object sender, EventArgs e)

        {

            sign = "*";

            val1 = double.Parse(txtbox.Text);

            txtbox.Text = "";

        }

 

        private void cmddivide_Click(object sender, EventArgs e)

        {

            sign = "/";

            val1 = double.Parse(txtbox.Text);

            txtbox.Text = "";

        }

 

        private void txtbox_TextChanged(object sender, EventArgs e)

        {

          

 

        }

 

        private void txtbox_KeyPress(object sender, KeyPressEventArgs e)

        {

            int keycode;

            keycode = e.KeyChar;

            //accept only number from key 0 to key 9, key back, and key dot

            if (keycode >= 48 && keycode <= 57 || keycode==8 || keycode==32 || keycode==46)

            {

                //key dot allowed only one time

                if (keycode == 46) ++trackkeypoint;

                if (trackkeypoint > 1) { e.Handled = true; --trackkeypoint; }

            }

            else e.Handled = true;

        }

 

        private void txtbox_KeyDown(object sender, KeyEventArgs e)

        {

           

 

               }

    }

}




  • Why and How to learn
  • C programming language?
  • C++ programming language?
  • C# programming language?
  • Java programming language?
  • Python programming language?
  • VB programming language?
comment

Posted comments

Phan Neth, CICI, year 3:

Now it is ok teacher. I can connect to database and select data from it. Than you so much teacher !!!!!

04-30-2013

Dara:

Copy and paste the link below to the address box to learn how to connect C and Mysql server:
http://www.worldbestlearningcenter.com/index_files/cpp-tutorial-connect_mysql_database.htm

04-27-2013

Phan Neth, CICI, year 3:

Hello teacher i want to connect C programming language to MySql server but it have problem. When i compile it always error with library " my_global.h
and mysql.h", so how should i do?

04-27-2013

Phan Neth, Year 3 at CICI,:

I have some problem about connection to mysql server. So I hope teacher can help me. Thank !!!!

04-26-2013

Federico:

Output appears the same also this way:

static void Main(string[] args)
{
int[,] myArray = new int[5, 5];
int row, i;
int n = 1;

for (row = 0; row < 5; row++)
{
for (i = 0; i < 5; i++)
{
myArray[row, i] = n;
if (row == 1 && i == 2) Console.Write(" \t");
else Console.Write("{0} \t", n);

if (n!=26) n++;
if((i+1)%5==0) Console.WriteLine("\n");
}
}
Console.ReadLine();
}

04-13-2013

Dara:

Let pointer p point to the index 1 elem (value=2) of the array.
int *p= a+1;
Let pointer q point to the index 6 elem (value=5) of the array.
int *q= a+6;
-Expression q-p is the subtraction of address of the index 6 element and the address of index 1 elem of the array. So, the result is 5.
-Expression *p+*q is the sum of the value of index 1 elem (2) and the value of index 6 elem (5). So, the result is 7.
In conclusion, the output is 57.

03-28-2013

Anushka :

Find the output of following code
main()
{
int a[] = {1,2,9,8,6,3,5,7,8,9};
int *p= a+1; int *q= a+6;
cout<< q-p <<*p+*q; }

03-28-2013

Dara:

Option Explicit
Dim Cn as New ADODB.Connection
Private Sub_Form_Load()
Cn.Open "Provider=SQLOLEDB; Data Source=ServerName; Initial Catalog=DatabaseName;UserID=UserName; Password=Passw"
End Sub
You will need to replace ServerName with the name of your server (installed SQL Server), DatabaseName withe the name of your data file that you want to connect to, UserName with the name of the user to login to SQL Server, and Passw with the password used to login to SQL Server.

03-13-2013

More>>>

....................................................................................................................Home | Forum | About | Contact
This website intents to provide free and high quality tutorials, examples, exercises and solutions, questions and answers of programming and scripting languages:
C, C++, C#, Java, VB.NET, Python, VBA,PHP & Mysql, SQL, JSP, ASP.NET,HTML, CSS, JQuery, JavaScript and other applications such as MS Excel, MS Access, and MS Word. However, we don't guarantee all things of the web are accurate. If you find any error, please report it then we will take actions to correct it as soon as possible.
Copyright @ 2011-2013 worldbestlearningcenter. All Rights Reserved.
Computer-Wbest
Programming Tips
Download
Related Posts