C# 为什么我的for循环只显示最后的结果?

C# 为什么我的for循环只显示最后的结果?,c#,C#,我希望我的label2.Text显示乘法表的每个相关结果,但只显示最后一个结果。 我使每个复选框只等于一个数学表。checkbox1=乘法表1,checkbox2=乘法表2,依此类推。。。 为什么在我的Windows窗体中,只有最后一个结果显示在mylabel2.Text属性中? 另外,我正在学习C#的入门课程 int倍数; 整数倍数; 对于(multiplyNumber=1;multiplyNumber而言,您不是在连接结果,而是只设置当前值 这会起作用,但不是最干净/有效的方法: label

我希望我的
label2.Text
显示乘法表的每个相关结果,但只显示最后一个结果。 我使每个复选框只等于一个数学表。checkbox1=乘法表1,checkbox2=乘法表2,依此类推。。。 为什么在我的Windows窗体中,只有最后一个结果显示在my
label2.Text
属性中? 另外,我正在学习C#的入门课程

int倍数;
整数倍数;

对于(multiplyNumber=1;multiplyNumber而言,您不是在连接结果,而是只设置当前值

这会起作用,但不是最干净/有效的方法:

label2.Text += sum + "\n";
首先尝试使用
StringBuilder
生成结果,并在最后为文本框指定
StringBuilder

StringBuilder sum = new StringBuilder();
int multiplyWith = checkBox1.Checked ? 1 : 2;

for (int multiplyNumber = 1; multiplyNumber <= 12; multiplyNumber++)
{
    sum.AppendLine(multiplyNumber * multiplyWith);
}    

label2.Visible = true;
label2.Text = sum.ToString();
StringBuilder sum=new StringBuilder();
整数倍等于复选框1。选中?1:2;

对于(int multiplyNumber=1;multiplyNumber,如果需要,可以将其更改为:

int multiplyWith;
int multiplyNumber;
var results = string.Empty;
for (multiplyNumber = 1; multiplyNumber <= 12; multiplyNumber++)
{
    if (checkBox1.Checked == true)
    {
        multiplyWith = 1;
        int sum = multiplyNumber * multiplyWith;
        label2.Visible = true;
        results += sum + "\n"
    }
    else if (checkBox2.Checked == true)
    {
        multiplyWith = 2;
        int sum = multiplyNumber * multiplyWith;
        label2.Visible = true;
        results += sum + "\n"
    } 
}

您可以从中编辑这一行

label2.Text = sum + "\n";


这有很多重复。根本原因是C#直到循环结束后才从方法中获取控件。每次迭代都要替换结果我知道这是不好的重复代码,但保存和的变量是否没有被替换为新值,然后用for循环显示。我试着将if语句中的e for循环,但结果保持不变。你说我替换值是什么意思。我知道需要替换该值才能显示新值,但为什么新值没有显示,而只是被替换,导致它只显示最后一个值?@ChristoffelJoubert你使用的值是什么要在
label2.Text
属性中显示的ant?请编辑您的问题,在
label2.Text
中包含复选框状态的示例和您想要的结果。代码片段仅用于javascript/html/css,请不要将其用于c代码谢谢。很抱歉,代码片段。谢谢。这正是我要查找的内容例如。我知道它很小,因为逻辑对我来说很有意义。谢谢。我确实创建了一个空值的变量,我相信它与string.empty相同。我错过的是总和之前的+=值。谢谢
label2.Text = results;
label2.Text = sum + "\n";
label2.Text += sum + "\n";