|
using System;
|
|
using System.Windows.Forms;
|
|
using System.Drawing;
|
|
|
|
|
|
public class win:Form {
|
|
|
|
Button[] b = new Button[10];
|
|
Button bDot,bPlus,bSub,bMul,bDiv,bEqu,bClr;
|
|
Panel panCalc;
|
|
TextBox txtCalc;
|
|
|
|
Double dblAcc;////
|
|
Double dblSec;///
|
|
|
|
bool blnClear,blnFrstOpen;
|
|
String strOper;
|
|
|
|
public win() {
|
|
try {
|
|
this.Text="Calculator";
|
|
panCalc=new Panel();
|
|
txtCalc = new TextBox();
|
|
|
|
txtCalc.Location = new Point(10,10);
|
|
txtCalc.Size=new Size(150,10);
|
|
txtCalc.ReadOnly=true;
|
|
txtCalc.RightToLeft=RightToLeft.Yes;
|
|
panCalc.Size=new Size(250,250);//change size
|
|
panCalc.BackColor=Color.Brown;//change color
|
|
panCalc.Controls.Add(txtCalc);
|
|
addButtons(panCalc);
|
|
this.Size=new Size(250,250);
|
|
this.Controls.Add(panCalc);
|
|
|
|
dblAcc=0;
|
|
dblSec=0;
|
|
blnFrstOpen=true;
|
|
blnClear=false;
|
|
strOper=new String('=',1);
|
|
}
|
|
catch (Exception e) {
|
|
Console.WriteLine("error .. " + e.StackTrace);//change somthing
|
|
}
|
|
}
|
|
|
|
private void addButtons(Panel p) {
|
|
for (int i=0;i<=9;i++) {
|
|
b[i]=new Button();
|
|
b[i].Text=Convert.ToString(i);
|
|
b[i].Size=new Size(25,25);
|
|
b[i].BackColor=Color.White;
|
|
b[i].Click+=new EventHandler(btn_clk);
|
|
p.Controls.Add(b[i]);
|
|
}
|
|
b[0].Location=new Point(10,160);
|
|
b[1].Location=new Point(10,120);
|
|
b[4].Location=new Point(10,80);
|
|
b[7].Location=new Point(10,40);
|
|
|
|
b[2].Location=new Point(50,120);
|
|
b[5].Location=new Point(50,80);
|
|
b[8].Location=new Point(50,40);
|
|
|
|
b[3].Location=new Point(90,120);
|
|
b[6].Location=new Point(90,80);
|
|
b[9].Location=new Point(90,40);
|
|
|
|
bDot=new Button();
|
|
bDot.Size=new Size(25,25);
|
|
bDot.Location=new Point(50,160);
|
|
bDot.BackColor=Color.White;
|
|
bDot.Text=".";
|
|
bDot.Click+=new EventHandler(btn_clk);
|
|
|
|
bPlus=new Button();
|
|
bPlus.Size=new Size(25,25);
|
|
bPlus.Location=new Point(130,160);
|
|
bPlus.BackColor=Color.White;
|
|
bPlus.Text="+";
|
|
bPlus.Click+=new EventHandler(btn_Oper);
|
|
|
|
bSub=new Button();
|
|
bSub.Size=new Size(25,25);
|
|
bSub.Location=new Point(130,120);
|
|
bSub.BackColor=Color.White;
|
|
bSub.Text="-";
|
|
bSub.Click+=new EventHandler(btn_Oper);
|
|
|
|
bMul=new Button();
|
|
bMul.Size=new Size(25,25);
|
|
bMul.Location=new Point(130,80);
|
|
bMul.BackColor=Color.White;
|
|
bMul.Text="*";
|
|
bMul.Click+=new EventHandler(btn_Oper);
|
|
|
|
bDiv=new Button();
|
|
bDiv.Size=new Size(25,25);
|
|
bDiv.Location=new Point(130,40);
|
|
bDiv.BackColor=Color.White;
|
|
bDiv.Text="/";
|
|
bDiv.Click+=new EventHandler(btn_Oper);
|
|
|
|
bEqu=new Button();
|
|
bEqu.Size=new Size(25,25);
|
|
bEqu.Location=new Point(90,160);
|
|
bEqu.BackColor=Color.White;
|
|
bEqu.Text="=";
|
|
bEqu.Click+=new EventHandler(btn_equ);
|
|
|
|
bClr=new Button();
|
|
bClr.Size=new Size(40,45);///chang size
|
|
bClr.Location=new Point(170,40);
|
|
bClr.BackColor=Color.Wheat;///change color
|
|
bClr.Text="AC";
|
|
bClr.Click+=new EventHandler(btn_clr);
|
|
|
|
p.Controls.Add(bDot);
|
|
p.Controls.Add(bPlus);
|
|
p.Controls.Add(bSub);
|
|
p.Controls.Add(bMul);
|
|
p.Controls.Add(bDiv);
|
|
p.Controls.Add(bEqu);
|
|
p.Controls.Add(bClr);
|
|
}
|
|
|
|
private void btn_clk(object obj,EventArgs ea) {
|
|
if(blnClear)
|
|
txtCalc.Text="";
|
|
|
|
Button b3=(Button)obj;
|
|
|
|
txtCalc.Text+=b3.Text;
|
|
|
|
if (txtCalc.Text==".")
|
|
txtCalc.Text="0.";
|
|
dblSec=Convert.ToDouble(txtCalc.Text);
|
|
|
|
blnClear=false;
|
|
}
|
|
|
|
private static void Main() {
|
|
Application.Run(new win());
|
|
}
|
|
|
|
private void btn_Oper(object obj,EventArgs ea) {
|
|
Button tmp=(Button)obj;
|
|
strOper=tmp.Text;
|
|
if (blnFrstOpen)
|
|
dblAcc=dblSec;
|
|
else
|
|
calc();
|
|
|
|
blnFrstOpen=false;
|
|
blnClear=true;
|
|
}
|
|
|
|
private void btn_clr(object obj,EventArgs ea) {
|
|
clear();
|
|
}
|
|
|
|
private void btn_equ(object obj,EventArgs ea) {
|
|
calc();
|
|
|
|
}
|
|
|
|
private void calc() {
|
|
|
|
switch(strOper) {
|
|
|
|
case "+":
|
|
dblAcc+=dblSec;
|
|
break;
|
|
case "-":
|
|
dblAcc-=dblSec;
|
|
break;
|
|
case "*":
|
|
dblAcc*=dblSec;
|
|
break;
|
|
case "/":
|
|
dblAcc/=dblSec;
|
|
break;
|
|
}
|
|
|
|
strOper="=";
|
|
blnFrstOpen=true;
|
|
txtCalc.Text=Convert.ToString(dblAcc);
|
|
dblSec=dblAcc;
|
|
}
|
|
|
|
private void clear() {
|
|
dblAcc=0;
|
|
dblSec=0;
|
|
blnFrstOpen=true;
|
|
txtCalc.Text="";
|
|
txtCalc.Focus();
|
|
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
this.SuspendLayout();
|
|
//
|
|
// win
|
|
//
|
|
this.ClientSize = new System.Drawing.Size(284, 262);
|
|
this.Name = "win";
|
|
this.Load += new System.EventHandler(this.win_Load);
|
|
this.ResumeLayout(false);
|
|
|
|
}
|
|
|
|
private void win_Load(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
}
|