每次单击按钮时添加到int,并显示在文本框c#中

本文关键字:显示 文本 int 单击 按钮 添加 | 更新日期: 2023-09-27 17:58:02

我对编程很陌生,每次单击按钮时,它都会在int的值上添加一个,并将其显示在文本框中。我的代码是:

private void button1_Click(object sender, EventArgs e)
{
    int a = 100;
    a++;
    txtBox1.Text = a.ToString();
}

所以当我点击按钮时,它会显示在文本框101中,但当我再次点击时,我希望文本框显示102和103等。有什么想法吗?我认为这很容易,并且使用了一些循环的变体,但我尝试了一些东西,似乎都不起作用。任何提示都将不胜感激!谢谢

每次单击按钮时添加到int,并显示在文本框c#中

您必须将值存储在Method Body之外。

private int a = 100;
private void button1_Click(object sender, EventArgs e)
{        
     a++;
      txtBox1.Text = a.ToString();
}

你在程序中所做的是,每当你点击按钮时,新的Integer a被声明为值100,然后你将其增加1,这就是为什么你总是看到"101"。

在您的代码中,每次单击按钮时,您都会对a进行delcare,并反复为其赋值。

您应该在button1_Click方法之外声明变量:

class Window1
{
    int a = 100;
    ....
    private void button1_Click(object sender, EventArgs e)
        {
            a++;
            txtBox1.Text = a.ToString();
        }
}

您需要将a声明为包含方法的类的成员:

private int _a = 100;
private void button1_Click(object sender, EventArgs e)
{
    _a++;
    txtBox1.Text = _a.ToString();
}

如果不这样做,每次单击按钮时都会有一个新的实例,因此您总是会在文本框中看到101。

可以不在文本框中创建全局字段和存储点击次数。如果你有几个按钮,这会特别方便。

private void button1_Click(object sender, EventArgs e)
    {     
        if (txtBox1.Tag is int)
        {
            int a = (int)txtBox1.Tag;
            a++;
            txtBox1.Tag = a;
            txtBox1.Text = a.ToString();
        }
        else
        {
            txtBox1.Tag = 100;
            txtBox1.Text = 100;
        }
}
int a = 100;
txtBox1.Text = a.ToString();
  ......

private void button1_Click(对象发送方,EventArgs e){

    a++;
   txtBox1.Text = a.ToString();
}

每次执行函数时,将int a = 100;放置在button1_Click(object sender, EventArgs e)内会将a设置为100。如果你需要一个计数器,把它放在函数之外(然后它只初始化一次),并在执行函数时递增。

解决方案

int a = 100;
private void button1_Click(object sender, EventArgs e)
{        
    a++;
    txtBox1.Text = a.ToString();
}
static int a = 100;
private void button1_Click(object sender, EventArgs e)
{        
     a++;
      txtBox1.Text = a.ToString();
}

如果您想优化代码,请先设置文本框属性text = 100,然后在按钮点击事件中只写一行代码

private void button1_Click(object sender, EventArgs e)
{            
    txtBox1.Text = (Convert.ToInt32(txtBox1.Text) + 1).ToString();
}

正如你所知,C#逐行编译代码,而你只有一行代码,这会带来更快的性能。