C# 向标签添加一个int变量并赋予它+;1.

C# 向标签添加一个int变量并赋予它+;1.,c#,int,var,counting,C#,Int,Var,Counting,我正忙着一个迷宫,我现在正在处理这个问题。我想当有人撞到墙上时,他使用方法Movetostart,我想让它与vardeath一起计数。到目前为止,我得到了这个 int death = 0; private void MoveToStart() { Count.Text = death.ToString(); Point startingPoint = panel1.Location; startingPoint.Offset(301, 543); Cursor.P

我正忙着一个迷宫,我现在正在处理这个问题。我想当有人撞到墙上时,他使用方法
Movetostart
,我想让它与var
death
一起计数。到目前为止,我得到了这个

int death = 0;
private void MoveToStart()
{
    Count.Text = death.ToString();
    Point startingPoint = panel1.Location;
    startingPoint.Offset(301, 543);
    Cursor.Position = PointToScreen(startingPoint);
    ms = 0;
    sec = 0;
    min = 0;
    hour = 0;
    death = +1;
}

现在的问题是,死亡只停留在1上,不管它撞到墙上多少次,它都不会计数。

我猜你想写
死亡+=1和非<代码>死亡=+1

编辑:
此外,与其他人的评论一样,您应该将该值指定给
Count。Text
之后,您将增加该值或
Count上的文本。Text
将始终落后一步。

您可能希望在显示它之前增加
death
,否则它将显示为1:

private void MoveToStart()
{
   ++death;
   Count.Text = death.ToString();
   Point startingPoint = panel1.Location;
   startingPoint.Offset(301, 543);
   Cursor.Position = PointToScreen(startingPoint);
   ms = 0;
   sec = 0;
   min = 0;
   hour = 0;
}
使用
++
操作符将计数增加1,并将其分配回对象,与
死亡+=1相同


代码的实际问题是
death=+1
death+=1
不同。您所做的只是将
death
重新赋值给
+1
,或者
1

如果您想将1添加到“death”变量中,您可以这样编写它

int death = 0;
private void MoveToStart()
{
    Count.Text = death.ToString();
    Point startingPoint = panel1.Location;
    startingPoint.Offset(301, 543);
    Cursor.Position = PointToScreen(startingPoint);
    ms = 0;
    sec = 0;
    min = 0;
    hour = 0;
    death++;
}

或者创建另一个变量,在每次调用该方法时使用该变量将其添加到死亡中

int death = 0;
int _numberToAddEachTime = 1;
private void MoveToStart()
{
    Count.Text = death.ToString();
    Point startingPoint = panel1.Location;
    startingPoint.Offset(301, 543);
    Cursor.Position = PointToScreen(startingPoint);
    ms = 0;
    sec = 0;
    min = 0;
    hour = 0;
    death = death + _numberToAddEachTime;
}

death=+1
的语法不太正确。。。想想那句话是什么意思。你的逻辑几乎是正确的。你需要将death的值赋回到文本框中,还需要读取运算符重载。你可以使用death+=1,你应该在更改后将其放入Count.text,而不是之前。我也尝试了
Count.text=(Int32.Parse(Count.text)+1).ToString()但这给了我一个错误:mscorlib中发生了类型为“System.FormatException”的未处理异常。dll@LeroyBeukers您是否也在使用调试器单步执行代码。。在您熟悉如何使用
+=
操作符之前,您应该坚持使用老方法
death=death+1
您还需要了解
转换(字符串)和转换ToString
方法之间的区别。。不要把你的简单问题复杂化,这不是答案。看代码,你可以清楚地看到OP最初给文本框赋值,但在死亡值增加后,它不会更新文本框。@MethodMan:你的权利。我只给出了一半的答案。我已经更新了答案。
int death = 0;
int _numberToAddEachTime = 1;
private void MoveToStart()
{
    Count.Text = death.ToString();
    Point startingPoint = panel1.Location;
    startingPoint.Offset(301, 543);
    Cursor.Position = PointToScreen(startingPoint);
    ms = 0;
    sec = 0;
    min = 0;
    hour = 0;
    death = death + _numberToAddEachTime;
}