问题在于,数字注释不会改变快速和慢速的速度类型。基本上它会加速价值是正还是负,如果我把它恢复到零,它会崩溃。我现在正试图在TickCounter的数字注册中创建一个if循环。
这是:
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; }
}
}
我应该使用其他类型的循环还是我只是写错了?当我尝试更改值时,它只会崩溃而且根本不会改变。
有谁知道如何实现这一目标?另外,如果我不想有任何改变,那么if(TickCount == 0)是否会有所不同?
答案 0 :(得分: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;
}
请告诉我是否能解决您的问题。