C# Calculator typing by pressing buttons

非 Y 不嫁゛ 提交于 2019-12-12 02:23:21

问题


I am studying C# now, so i am making some kind of exercises to get used to C# syntax and learn better. I decided to make a calculator looking alike the normal windows calculator.

I created only one button "1" and one textbox.

I want to make this button write 1 in textbox when I press it and also make an int variable equal to the number in the textbook, to make the calculation later. So I can't either change "int a"'s value or change text in the textbox, it always shows 01, because a always equals to 0. How can I make the program, both show the correct numbers and change the value of a correctly? For example how can i make the program show eleven in the textbox when i press button twice and also change "int a"'s value to 11?

public partial class Form1 : Form
{
    int a;
    string Sa;
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Sa = a.ToString() + "1";

        textBox1.Text = Sa;
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }
}

回答1:


private void button1_Click(object sender, EventArgs e)
{
     textBox1.Text += "1";
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
    a = Int32.Parse(textBox1.Text);    
}

just it.. Change text on textBox every button click, and change variable a every textBox changed.




回答2:


The value could then be set using

a = int.Parse(Sa);
textBox1.Text = Sa.TrimStart('0');

Although if you'd like to be more efficient about it,

a = a * 10 + 1;

not have Sa at all,

textBox1.Text = a.ToString();

If you run into integer overflows, you should use BigInteger.




回答3:


You have several options:

Make int a nullable int. That way you can check if int is already set

int? a;

if ( a.HasValue )
{
}
else
{
}

Check if the Text property of textBox1 is empty (which means you don't have to append a to it)

if ( textBox1.Text == string.Empty)
{
}
else
{
}



回答4:


public void btnOne_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnOne.Text;

        }

        private void btnTwo_Click(object sender, EventArgs e)
        {
            txtDisplay.Text = txtDisplay.Text + btnTwo.Text;
        }

// etc 



回答5:


for any button you want to append text to the text box set the click property to btn_Click then pt this code inside the method

private void btn_Click(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    // This will assign btn with the properties of the button clicked
    txt_display.Text = txt_display.Text + btn.Text;
    // this will append to the textbox with whatever text value the button holds
}


来源:https://stackoverflow.com/questions/8656282/c-sharp-calculator-typing-by-pressing-buttons

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!