C# 按钮。单击事件如何使其显示十进制f
所以我希望按钮3计算“f”并在label21中显示它,但它没有 似乎有效C# 按钮。单击事件如何使其显示十进制f,c#,C#,所以我希望按钮3计算“f”并在label21中显示它,但它没有 似乎有效 private void button3_Click(object sender, EventArgs e) { button3.Click += new EventHandler(this.button3_Click); decimal b, f = 1; b = numericUpDown6.Value; while (f > 1)
private void button3_Click(object sender, EventArgs e)
{
button3.Click += new EventHandler(this.button3_Click);
decimal b, f = 1;
b = numericUpDown6.Value;
while (f > 1)
{
f *= b--;
label21.Text = f.ToString();
}
while循环正在检查(f>1)&您初始化f=1,因此它永远不会进入while循环 您需要检查(b>1) 此外,在for循环内分配标签也没有意义,因为GUI更新只会在方法退出后发生
private void button3_Click(object sender, EventArgs e)
{
decimal b, f = 1;
b = numericUpDown6.Value;
while (b > 1)
{
f *= b--;
}
label21.Text = f.ToString();
}
期望的行为是什么?你得到了什么?我希望它计算阶乘并显示在标签中,我什么也没有得到,标签仍然显示它在项目开始时设置的值,你的代码有什么错误?它什么也没有做这就是问题所在,也许我做错了什么你的标签上的值错了吗?你的标签没有任何价值吗?等等,它起作用了!谢谢,但现在还有另一个问题,当我尝试输入大于2的值时,它给了我这样一个“System.Windows.Forms.dll中发生了类型为'System.StackOverflowException'的未处理异常”我没有注意到您每次单击按钮时都在添加新的事件处理程序-这不是必需的。删除该行。你应该将答案标记为正确,以帮助其他有类似问题的人。当然,我忘了:)