티스토리 뷰
C#으로 계산기 만들기
버튼 당 핸들러를 각자 넣지 않는다.
왜? 코드가 너무 길어진다.
핸들러를 각가 모두 만드는건 좋은 방법이 아니라고 한다.
모든 버튼 0~9까지 하나의 핸들러로 처리한다.
0~9까지 버튼의 클릭 핸들러를 위와 같이 한개로 처리한다.
0~9까지 버튼 핸들러를 하나의 핸들러로 처리하는 코드
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 First_cSharp_App
{
public partial class calc : Form
{
public int Result = 0; // 결과값을 저장하는 변수
public bool isNewNum = true; //더하기 버튼을 누르면 새로운 숫자인지 판단.
public calc()
{
InitializeComponent();
}
private void NumButton1_Click(object sender, EventArgs e)
{
Button numButton = (Button)sender;
SetNum(numButton.Text);
}
public void SetNum(string num )
{
if (isNewNum)
{
NumScreen.Text = num;
isNewNum = false;
}
else if (NumScreen.Text == "0")
{
NumScreen.Text = num;
}
else
{
NumScreen.Text = NumScreen.Text + num;
}
}
private void NumPlus_Click(object sender, EventArgs e)
{
int num = int.Parse(NumScreen.Text);
Result = Result + num;
NumScreen.Text = Result.ToString();
isNewNum = true;
}
}
}
c# 계산기에 연산자 추가해서 만들기
숫자 입력
연사자 버튼- 숫자완성, 변수와 숫자를 저장된 연산자로 연산, 결과를 변수에 저장, 현재 연산자를 저장 .
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 First_cSharp_App
{
public enum Operators { Add, Sub, Multi, Div}
public partial class calc : Form
{
public int Result = 0; // 결과값을 저장하는 변수
public bool isNewNum = true; //더하기 버튼을 누르면 새로운 숫자인지 판단.
public Operators Opt = Operators.Add;
public calc()
{
InitializeComponent();
}
private void NumButton1_Click(object sender, EventArgs e)
{
Button numButton = (Button)sender;
SetNum(numButton.Text);
}
public void SetNum(string num )
{
if (isNewNum)
{
NumScreen.Text = num;
isNewNum = false;
}
else if (NumScreen.Text == "0")
{
NumScreen.Text = num;
}
else
{
NumScreen.Text = NumScreen.Text + num;
}
}
private void NumPlus_Click(object sender, EventArgs e)
{
if (isNewNum == false )
{
int num = int.Parse(NumScreen.Text);
if (Opt == Operators.Add)
Result = Result + num;
else if (Opt == Operators.Sub)
Result = Result - num;
else if (Opt == Operators.Multi)
Result = Result * num;
else if (Opt == Operators.Div)
Result = Result / num;
}
NumScreen.Text = Result.ToString();
isNewNum = true;
Button optButton = (Button)sender;
if (optButton.Text == "+")
Opt = Operators.Add;
else if (optButton.Text == "-")
Opt = Operators.Sub;
else if (optButton.Text == "*")
Opt = Operators.Multi;
else if (optButton.Text == "/")
Opt = Operators.Div;
}
private void NumClear_Click(object sender, EventArgs e)
{
Result = 0;
isNewNum = true;
Opt = Operators.Add;
NumScreen.Text = "0";
}
}
}
2019/12/03 - [프로그래밍/Xamarin] - 자마린(Xamarin)으로 계산기 앱 만들기
'프로그래밍 > C#' 카테고리의 다른 글
C#에서 treeview 선택한 노드 삭제하기 (0) | 2018.10.14 |
---|---|
C# 그룹박스 동적생성 (0) | 2018.10.14 |
C# 계산기 버튼 만들기, 더하기 버튼 누르면 첫번째 숫자 완성되기 (0) | 2018.10.13 |
c#에서 계산기 버튼 만들기 (0) | 2018.10.13 |
c#에서 텍스트 박스에 숫자만 입력받고 싶을때 코딩방법 (0) | 2018.10.13 |