Я хочу сделать так, чтобы если человек дважды нажимает enter, он очищает текстовое поле и поле метки, а не добавляет к результирующему значению
Я хочу сделать так, чтобы если человек нажимает дважды или после нажатия какой-либо кнопки он это делает (textbox1.clear & labelbox1 = "";)
Что я уже пробовал:
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 Ccalculator { public partial class Form1 : Form { Decimal ResultValue = 0; String operatorperformed = ""; bool IsOperatorPerformed = false; public Form1() { InitializeComponent(); } private void button_Click(object sender, EventArgs e) { if(textBox1.Text == "0"||IsOperatorPerformed) { textBox1.Clear(); } Button button = (Button)sender; if (textBox1.Text == ".") { if (!textBox1.Text.Contains(".")) { textBox1.Text = textBox1.Text + button.Text; } }else textBox1.Text = textBox1.Text + button.Text; } private void buttonBackSpace_Click(object sender, EventArgs e) { int i = textBox1.Text.Length; textBox1.Text = textBox1.Text.Substring(0, i - 1); } private void Button_Operator(object sender, EventArgs e) { Button button = (Button)sender; if (ResultValue != 0) { buttonEqualsTo.PerformClick(); operatorperformed = button.Text; label1.Text = ResultValue + " " + operatorperformed; IsOperatorPerformed = true; } else { operatorperformed = button.Text; ResultValue = Decimal.Parse(textBox1.Text); label1.Text = ResultValue + " " + operatorperformed; IsOperatorPerformed = true; } } private void buttonEqualsTo_Click(object sender, EventArgs e) { switch (operatorperformed) { case "+": textBox1.Text = (ResultValue + Decimal.Parse (textBox1.Text)).ToString(); break; case "-": textBox1.Text = (ResultValue - Decimal.Parse (textBox1.Text)).ToString(); break; case "/": textBox1.Text = (ResultValue / Decimal.Parse (textBox1.Text)).ToString(); break; case "x": textBox1.Text = (ResultValue * Decimal.Parse (textBox1.Text)).ToString(); break; } ResultValue = Decimal.Parse(textBox1.Text); label1.Text = ""; } private void buttonC_Click(object sender, EventArgs e) { textBox1.Clear(); label1.Text = ""; } private void butCE_Click(object sender, EventArgs e) { textBox1.Clear(); } } }
Richard MacCutchan
Хорошо, это то, что вы хотите, чтобы произошло. В чем же проблема?
NotAComputerScienceStudent
Проблема в том, что нажатие равно ему умножает число снова и снова, когда я нажимаю равно, и если я нажимаю любую числовую кнопку, она просто добавляет к нему (50 становится 506), я хочу, чтобы он сбросился
Richard MacCutchan
Смотрите ответ OriginalGriff ниже.