每次单击按钮时添加到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等。有什么想法吗?我认为这很容易,并且使用了一些循环的变体,但我尝试了一些东西,似乎都不起作用。任何提示都将不胜感激!谢谢
您必须将值存储在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#逐行编译代码,而你只有一行代码,这会带来更快的性能。