1
현재 지불금을 계산하기 위해 터치 스크린 프로그램을 작성 중입니다.C#으로 계산기 만들기
내가 달성하기 위해 노력하고 계산은 다음과 같습니다 남은 = 총 -을 지불했다.
남은 필드는 사용자가 입력 할 때 결과가 자동으로 채워 집니 까?
저는 실시간으로, 그리고 사용자가 유료 버튼을 누르면 그것을 원합니다.
void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
void totalBtn_activate()
{
totalTxt.Select();
totalTxt.BackColor = Color.FromArgb(245, 244, 162);
totalBtn.ForeColor = Color.Red;
paidTxt.BackColor = Color.White;
paidBtn.ForeColor = Color.Black;
remainTxt.BackColor = Color.White;
remainBtn.ForeColor = Color.Black;
}
private void paidBtn_Click(object sender, EventArgs e)
{
paidBtn_activate();
}
private void paidTxt_Enter(object sender, EventArgs e)
{
paidBtn_activate();
}
void paidBtn_activate()
{
paidTxt.Select();
paidTxt.BackColor = Color.FromArgb(245, 244, 162);
paidBtn.ForeColor = Color.Red;
totalTxt.BackColor = Color.White;
totalBtn.ForeColor = Color.Black;
remainTxt.BackColor = Color.White;
remainBtn.ForeColor = Color.Black;
}
private void remainBtn_Click(object sender, EventArgs e)
{
remainBtn_activate();
}
private void remainTxt_Enter(object sender, EventArgs e)
{
remainBtn_activate();
}
private void totalBtn_Click(object sender, EventArgs e)
{
totalBtn_activate();
}
private void totalTxt_Enter(object sender, EventArgs e)
{
totalBtn_activate();
}
void remainBtn_activate()
{
remainTxt.Select();
remainTxt.BackColor = Color.FromArgb(245, 244, 162);
remainBtn.ForeColor = Color.Red;
totalTxt.BackColor = Color.White;
totalBtn.ForeColor = Color.Black;
paidTxt.BackColor = Color.White;
paidBtn.ForeColor = Color.Black;
}
private void viewDrivers_Click(object sender, EventArgs e)
{
var form1 = new Form1();
form1.Show();
this.Close();
}
private void AppendValue(string valueToAppend)
{
if (remainTxt.BackColor == Color.FromArgb(245, 244, 162))
{
remainTxt.AppendText(valueToAppend);
}
else if (totalTxt.BackColor == Color.FromArgb(245, 244, 162))
{
totalTxt.AppendText(valueToAppend);
}
else if (paidTxt.BackColor == Color.FromArgb(245, 244, 162))
{
paidTxt.AppendText(valueToAppend);
}
}
bool dotControl = false;
int count = 0;
private void btn1_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("1");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("1");
}
}
private void btn2_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("2");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("2");
}
}
private void btn3_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("3");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("3");
}
}
private void btn4_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("4");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("4");
}
}
private void btn5_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("5");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("5");
}
}
private void btn6_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("6");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("6");
}
}
private void btn7_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("7");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("7");
}
}
private void btn8_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("8");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("8");
}
}
private void btn9_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("9");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("9");
}
}
private void btn0_Click(object sender, EventArgs e)
{
if (dotControl && count == 0)
{
AppendValue("0");
count++;
}
else if (count > 0)
{
}
else
{
AppendValue("0");
}
}
private void btndot_Click(object sender, EventArgs e)
{
if (!dotControl)
{
AppendValue(".");
dotControl = true;
}
}
private void RemoveLast(TextBox tb)
{
if (tb.Text.Length > 0)
{
if (char.IsDigit(tb.Text[tb.Text.Length - 1])) count = 0;
else
{
dotControl = false;
count = 0;
}
tb.Text = tb.Text.Remove(tb.Text.Length - 1, 1);
}
}
private void btnback_Click(object sender, EventArgs e)
{
if (remainTxt.BackColor == Color.FromArgb(245, 244, 162))
{
RemoveLast(remainTxt);
}
else if (totalTxt.BackColor == Color.FromArgb(245, 244, 162))
{
RemoveLast(totalTxt);
}
else if (paidTxt.BackColor == Color.FromArgb(245, 244, 162))
{
RemoveLast(paidTxt);
}
}
private void btnreset_Click(object sender, EventArgs e)
{
dotControl = false;
count = 0;
if (remainTxt.BackColor == Color.FromArgb(245, 244, 162))
{
remainTxt.Text = "";
}
else if (totalTxt.BackColor == Color.FromArgb(245, 244, 162))
{
totalTxt.Text = "";
}
else if (paidTxt.BackColor == Color.FromArgb(245, 244, 162))
{
paidTxt.Text = "";
}
}
private void btnpay_Click(object sender, EventArgs e)
{
}
멋진 UI입니다. – Rahul
TextBox의 TextChanged 이벤트에 대한 이벤트 핸들러를 현재 값으로 사용하는 것이 좋습니다. 그러면 계산을 수행하고 다른 TextBox의 나머지 값을 설정할 수 있습니다. –
MVVM 모델을 사용하는 것이 좋습니다. 시작하기가 어려울 지 모르지만 시간을 정말로 가치있게 생각할 수도 있습니다. –