1

我对编程很陌生,每次单击按钮时,我都会尝试这样做,它会在 an 的值上加一个int并将其显示在textbox中。我的代码是:

private void button1_Click(object sender, EventArgs e)
{
    int a = 100;
    a++;

    txtBox1.Text = a.ToString();
}

因此,当我单击它显示在文本框 101 中的按钮时,但是当我再次单击它时,我希望文本框显示 102 和 103 等。有什么想法吗?我认为这很容易并且使用循环的一些变体,但我尝试了一些东西,但似乎没有任何效果。任何提示将非常感谢!谢谢。

4

8 回答 8

4

您必须将您的价值存储在方法主体之外。

private int a = 100;

private void button1_Click(object sender, EventArgs e)
{        
     a++;

      txtBox1.Text = a.ToString();
}

您在程序中所做的是,每当您单击按钮时,新 Integera的值被声明为 100,然后您将其增加 1,这就是您总是看到“101”的原因。

于 2013-02-07T10:25:33.273 回答
0
int a = 100;
txtBox1.Text = a.ToString();
  ......

私人无效按钮1_Click(对象发送者,EventArgs e){

    a++;

   txtBox1.Text = a.ToString();
}
于 2013-02-07T10:26:43.613 回答
0

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

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;
        }
}
于 2013-02-07T10:33:49.650 回答
0

在您的代码a中,每次单击按钮时,您都会一遍又一遍地为它分配一个值。

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

class Window1
{
    int a = 100;
    ....
    private void button1_Click(object sender, EventArgs e)
        {
            a++;
            txtBox1.Text = a.ToString();
        }
}
于 2013-02-07T10:25:18.857 回答
0

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

解决方案

int a = 100;
private void button1_Click(object sender, EventArgs e)
{        
    a++;

    txtBox1.Text = a.ToString();
}
于 2013-02-07T10:51:43.137 回答
0

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

private int _a = 100;

private void button1_Click(object sender, EventArgs e)
{
    _a++;

    txtBox1.Text = _a.ToString();
}

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

于 2013-02-07T10:25:37.170 回答
0

如果你想优化你的代码而不是首先设置文本框属性text = 100 并在按钮点击事件中只写一行代码

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

如您所知,C# 逐行编译代码,并且您只有一行代码,它可以提供更快的性能。

于 2017-06-09T16:23:37.830 回答
0
static int a = 100;

private void button1_Click(object sender, EventArgs e)
{        
     a++;

      txtBox1.Text = a.ToString();
}
于 2016-04-17T16:54:01.613 回答