Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#按按钮输入计算器_C#_Calculator - Fatal编程技术网

C#按按钮输入计算器

C#按按钮输入计算器,c#,calculator,C#,Calculator,我现在正在学习C#,所以我做了一些练习来适应C#语法并更好地学习。我决定做一个看起来像普通windows计算器的计算器 我只创建了一个按钮“1”和一个文本框 当我按下这个按钮时,我想让它在文本框中写上1,并且让一个int变量等于教科书中的数字,以便以后进行计算。所以我既不能更改“int a”的值,也不能更改文本框中的文本,它总是显示01,因为a总是等于0。 如何制作程序,既能显示正确的数字,又能正确更改a的值? 例如,当我按下两次按钮并将“int a”的值更改为11时,如何使程序在文本框中显示1

我现在正在学习C#,所以我做了一些练习来适应C#语法并更好地学习。我决定做一个看起来像普通windows计算器的计算器

我只创建了一个按钮“1”和一个文本框

当我按下这个按钮时,我想让它在文本框中写上1,并且让一个int变量等于教科书中的数字,以便以后进行计算。所以我既不能更改“int a”的值,也不能更改文本框中的文本,它总是显示01,因为a总是等于0。 如何制作程序,既能显示正确的数字,又能正确更改a的值? 例如,当我按下两次按钮并将“int a”的值更改为11时,如何使程序在文本框中显示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)
    {

    }
}

然后可以使用

a = int.Parse(Sa);
textBox1.Text = Sa.TrimStart('0');
虽然如果你想更有效地处理这件事

a = a * 10 + 1;
根本没有
Sa

textBox1.Text = a.ToString();

如果遇到整数溢出,则应使用。

然后可以使用

a = int.Parse(Sa);
textBox1.Text = Sa.TrimStart('0');
虽然如果你想更有效地处理这件事

a = a * 10 + 1;
根本没有
Sa

textBox1.Text = a.ToString();

如果遇到整数溢出,应使用。

您有几个选项:

将int设置为可为空的int。这样可以检查int是否已设置

int? a;

if ( a.HasValue )
{
}
else
{
}
检查textBox1的Text属性是否为空(这意味着您不必向其追加文本)


您有几个选择:

将int设置为可为空的int。这样可以检查int是否已设置

int? a;

if ( a.HasValue )
{
}
else
{
}
检查textBox1的Text属性是否为空(这意味着您不必向其追加文本)

就这样。。每次单击按钮时更改文本框上的文本,每次更改文本框时更改变量a

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 

就这样。。每次单击按钮时更改文本框上的文本,每次更改文本框时更改变量a。

对于要将文本附加到文本框中的任何按钮,请将click属性设置为
btn\u单击
,然后将此代码放入方法中

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 
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
}

对于要将文本附加到文本框的任何按钮,请将click属性设置为
btn\u click
,然后将此代码放入方法中

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
}

你的问题不清楚。你知道字符串和整数的区别吗?您知道a.ToString()+“1”是一个字符串而不是整数。因此,它只需在字符串中加一个1。在前面的文本之前追加文本:textBox1.text=“1”+textBox1.text;你的问题不清楚。你知道字符串和整数的区别吗?您知道a.ToString()+“1”是一个字符串而不是整数。因此,它只需在字符串中加一个1。在前面的文本之前追加文本:textBox1.text=“1”+textBox1.text;