C# 以c形式更改numericupdown中的值
问题是数字上下不能改变速度的快慢类型。基本上,它会加速值是正还是负,如果我把它恢复到零,它会崩溃。我现在正试图在滴答计数器的numericupdown中创建一个if循环 这是:C# 以c形式更改numericupdown中的值,c#,winforms,forms,numericupdown,C#,Winforms,Forms,Numericupdown,问题是数字上下不能改变速度的快慢类型。基本上,它会加速值是正还是负,如果我把它恢复到零,它会崩溃。我现在正试图在滴答计数器的numericupdown中创建一个if循环 这是: namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent();
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Text = "AAAAAAA AAAAAAA #########";
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
TickCounterLabel.Text = "The timer has started";
tPeriodic.Enabled = true;
}
else
{
TickCounterLabel.Text = "The timer has ended";
tPeriodic.Enabled = false;
}
}
private void TickCounter_ValueChanged(object sender, EventArgs e)
{
**TickCounter.Value = TickCount;
if (TickCount >= 0)
tPeriodic.Interval = 1000 / Convert.ToInt32(TickCounter.Value * TickCounter.Value);
else if (TickCount <= 0)
tPeriodic.Interval = 1000 * Convert.ToInt32(TickCounter.Value * TickCounter.Value);
else if (TickCount == 0)
tPeriodic.Interval = Convert.ToInt32(TickCounter.Value * TickCounter.Value);**
}
private void tPeriodic_Tick(object sender, EventArgs e)
{
tickCount += 1;
lTickCount.Text = tickCount.ToString();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
public int tickCount { get; set; }
public int X { get; set; }
private void TickCounterLabel_Click(object sender, EventArgs e)
{
}
public int TickCount { get; set; }
}
}
我应该使用另一种类型的循环,还是我写错了?当我现在尝试更改值时,它只是崩溃了,而值根本没有更改
有人知道如何做到这一点吗?另外,如果我根本不想做任何更改,那么如果TickCount==0是否应该不同呢?我想这是因为被零除。 在TickCounter_ValueChanged的代码中,对于TickCount=0,它只会进入第一个if块并导致异常 您需要以正确的方式使用if-else条件
private void TickCounter_ValueChanged(object sender, EventArgs e)
{
if (TickCounter.Value > 0)
tPeriodic.Interval = 1000 / Convert.ToInt32(TickCounter.Value * TickCounter.Value);
else if (TickCounter.Value < 0)
tPeriodic.Interval = 1000 * Convert.ToInt32(TickCounter.Value * TickCounter.Value);
else
tPeriodic.Interval = 1000;
}
请告诉我它是否解决了您的问题。感谢您对我的帖子masum7的回复和编辑。那是行不通的。它给出了一个错误,并表示:值“0”不是有效的间隔值。间隔必须大于0。参数名称:IntervalCan请完成您的评论。这样就更容易找出问题所在。对不起,我不小心按了enter键。谢谢你对我缺乏经验的耐心。好的,你可以修改最后一个块,如下所示,只需设置一些非零值。tPeriodic.Interval=1\因此,您可以尝试在else的最后一个块中设置一些非零值:tPeriodic.Interval=1值“0”不是Interval的有效值。间隔必须大于0。参数名称:IntervalI抱歉,我是编程和C的新手。我不知道如何提供stacktrace。