Sei sulla pagina 1di 7
ay dUng caculator trong winform (c#) XAY DUNG CACULATOR TRONG WINFORM(C#) Thuc hién Gidi thiéu Caculator ting dung xy dung chuong trinh may tinh dién tur nhd gém cé cdc chic nang c&n ban nhu: céng, trix, nhan, chia... Céch thuc hién : Néu ban nao da lap trinh Visual Basic 6 thi chac chan sé biét dugc la VB6 cé str dung mang cdc control, cu thé Id mang cc buttons. Trong C# thi khéng c6 chic n&ng mang cac button, nhung ta cd mét céch dé duing thay cho mang trong VB6. Truc hét, hay tao mét project cé tén [a Calculator. : Ly Thanh Quyén. Bree g6m cae thude tinh Form’ Name frmCalculator Text May tinh tat Textbox Name ‘waketqua TexAlign Right Textbox Name ‘xtToantu TextAlign Center Button Name bind Text 0 Button Name bint Text 1 Button Name ben Text 2 Button Name band Text 3 Button Name band Text 4 Button Name bins Text 5 Button Name biné Text 6 Button Name. btaT Text 7 Button Name bind Text 8 Button Name bind Text 8 Button Name btnCham Text Button Name btnGong Text + Button Name btaTn Text : Button Name ‘binNhan Text . Button Name benChie Text ! Button Name binBlang Text = Button Name. btnClear Text c Cc button sé cé mau xanh, cdc button cdn lai c6 mau dé. Sau day ban sé viét code cho né. Ban thay, cac button cé text turong ting véi cc s6 va toan tlr va ta str dung cac text nay dé tinh... Luu y: Ban khéng bam double click vao cdc button dé tao su kién cho nd, ta sé tao bang tay. -Ban hay khai bao 3 bién toan cuc string numi = ""; string num2 ="; string exp = ""; +num1: luu gid tri sé ther nhat + num2 : luu gid tri s6 thi hai + exp : luu todn tur -Viét mét phuong thie dé nhan gia tri cla cac sé. Ban hay lay tén phuong tht la NumButton_Click. Phuong thttc nay sé duc goi khi ban click vao cac button 86. Nhung lam cac nao dé tat ca cdc button s6 déu goi t6i phurong thifc nay, ban hay code bang tay dé chi cho (mg dung biét la khi ban bam cac button sé thi tu’ dng né sé goi téi phuong thtic nay. -Ban hay vao phan phuting thtic khdi tao cia Calculator, va danh vao doan code ngay sau Idi goi hamInitializeComponent () ; public frmCalculator() { i // Required for Windows Form Designer support “wv InitializeComponent(); this.btn1.Click += new System. EventHandler(this.NumButton_Click) ; this.btn2.Click += new System. EventHandler(this.NumButton_Click) ; this.btn3.Click += new system. EventHandler(this.NumButton_Click) ; this.btn4.Click += new System. EventHandler(this.NumButton_Click) ; this.btn5.Click += new System. EventHandler(this.NumButton_Click) ; this.btn6.Click += new system. EventHandler(this.NumButton_Click) ; this.btn7.Click += new System. EventHandler(this.NumButton_Click) ; this.btn8.Click += new System. EventHandler(this.NumButton_Click) ; this.btn9.Click += new system. EventHandler(this.NumButton_Click) ; } Bay [a cch dé goi mot phuzng thtic xir ly sur kién khi ban bam vao mét button. Tén trong ngoac chinh la phuong thttc ma déi tugng nay sé goi tdi khi su kién Click dugc kich hoat. Do vay, ban c6 thé thay ddi surkién bang cach thay d6i tén sukién cia button. Vi dy ban cé thé goi dén mét su kién khi double click theo cach sau this.btn9.DoubleClick += new System. EventHandler (this.NumButton_DoubleClick) ; Luc nay, néu ban double click vao button 9 thi nd sé ty déng goi téi phuong tht#e trong ngoac: NumButton_DoubleClick Luu y: tén cua phuong thie c6 thé la mot tén bat ky, tuy nhién ban nén su’ dung mét tén dang sau dau gach la tén cua su kién. Va duéi day la néi dung cia phurong thi. private void NumButton_Click(object sender, System.EventArgs e) { Button btnClicked = (Button)sender; string num = btnClicked.Text; if (exp == "=") { numa = ""; exp = "5 } if (exp != "") { num2 num; txtKetQua.Text = num2; }elset num1 += num; txtkKetQua.Text = num1; } + — -Trong céc adi sé ctla phutong thitc, sender chinh la déi tugng goi téi phuong thite nay. Vi sender duge dé la kidu object trong khi déi tugng ta goi tdi lA Button nén ta sé chuyén né thanh kigu button, Button btnClicked = (Button)sender; va ban lay gid tri cua s6 bang cach lay text cia button. -Tiép theo ban sé kiém tra [a toan tir c6 la dau bang khong, toan tir la déu bang khi ban via tinh toainh xong mt phép tinh, Do d6, ban sé khdi tao lai gid tri cho bin 86 1 vé khéng (numd = 0) va toan tl bang trdng (exp="") -Ké dén ban kiém tra xem toan tut c6 khac trong, nghia la toan tr phai la +, - 1. Biéu nay déng nghia véi sé ban chon Itc nay phai la s6 thir2 va ban gan néi tiép vao s6 thir hai trudc dé (vi ta su dung chudi) va cho hién thi ra textbox két qua -Cén nguigc lai cé nghia la ban chon sé dau tién va ciing lam cac thao tac tuong tu'sé thir hai Ban viét tiép mét phuang thitc dé xt ly khi ban click vao cac button toan tu. Truéc hét, ban pphai viét doan code dé xtr ly su kién click cla cdc button toan tt. Ban thém doan code sau vao tiép néi trong hamkhéi taoCalculator this.btnCong.Click += new system. EventHandler(this.btnExp_Click); this.btnTru.Click += new system. EventHandler (this. btn€xp_Click); this.btnNhan.Click += new system. EventHandler(this.btnExp_Click); this.btnChia.Click += new system. EventHandler (this. btnExp_Click); Va dudi day la ham xir ly private void btnExp_Click(object sender, System.EventArgs e) { if (exp.Equals("") || exp.Equals("=")) txtToanTu.Text = exp; else { double db1ketQua = Tinh(); num = dblketQua.ToString(); num ="; txtketQua.Text = num1.ToString(); } exp = ((Button)sender) .Text; txtToanTu.Text = exp.ToString(); } -Néu ton tir hién tai [a trng hay déu bang, c6 nghifa [a ban click vo button toan tUr lan dau, thi no chi gan vao bién exp todn tir vlra chon va hién thi tén toan tir nay ra 6 textbox toan tir cia bang tinh. -Cén ngugc lai, néu ban click vao toan tir lan tht hai, nghia la truée dé ban di click vao mét tan ti nao dé thi né phai tinh toan, vi du ban da c6 4+2, gid ban bam thém toan tur - thi né phai tinh téng cla 2 sé kia cho thanh 6 réi gan no tro lai sé thir nhat (num1), va Ic nay toan tir trd thanh toan ttr-, va ctf tiép tuc nhu’ vay. Duéi day la ham tinh két qua: private double Tinh() { double dblketqua switch(Convert..Tochar (exp) ) { case "+": dblketQua = Convert.ToDouble(num1) + Convert .ToDouble(num2) ; break; case '-': db1ketQua = Convert .ToDouble(num1) break; case '*": dblketQua = Convert .ToDouble(num1) * Convert .ToDouble(num2) ; break; case '/': db1ketQua = Convert .ToDouble(num1) / Convert .ToDouble(num2) ; break; ti return dblketQua; } Ham nay sé kiém tra toan tir exp dling switch dé biét toan tu’ nao dé tinh toan hgp ly va tra két qua vé. Convert . ToDouble(num2) ; Tiép theo ban viét mét ham dé xt ly khi ban click vao button = Truc hét, ban phai tao mét doan code dé né goi tdi phuong thc btnBang_Click khi ban click vao button = this.btnBang.Click += new system. EventHandler(this.btnBang Click); va duéi day Ia phurong thtte private void btnBang Click(object sender, System.EventArgs e) { double dblketqua = dblketqua = Tinh(); num1 = dblketQua.ToString(); txtketQua.Text = num1; num2 = ""; exp = "="; txtToanTu.Text = exp; + Va cuéi cing la ham dé xo. Cting tuong ty trén, ban phai viét doan code xir iy su kién this.btnClear.Click += new System. EventHandler(this.btnClear_Click); Va day la phuong thie private void btnClear_Click(object sender, System.EventArgs e) { numa = ""; num2 ="; exp ="; txtToanTu.Text = ""; txtketQua.Text ="; } Ham nay chi cé nhiém vu duy nhat la reset t&t cd cdc gid tri vé trong. Bam F5 dé chay chuong trinh. Chutong trinh cdn cé nhiéu huge diém [a chua tinh ton dugc sé thye nhap vao, nghia la ban chua thé lam mét biéu thie 5.5 + 5. Hay tiép tuc phat trién thém chuong trinh nay dé cé thé nhé cc phép tinh, céc 86, Vv. Cae ban hay thir xem.

Potrebbero piacerti anche