我在c#中创建了一个简单的类,它在表单的顶部,右侧和左侧添加了两个面板。
如果我点击正确的组合,则会调用一个事件。用户有5秒钟来执行正确的组合,否则它将无法工作。组合是“右,左,右”。
bool secretCodeStage1;
bool secretCodeStage2;
private void TimerReset_Tick(object sender, EventArgs e)
{
Reset();
}
private void PanelTopLeft_Click(object sender, EventArgs e)
{
if (secretCodeStage1 && !secretCodeStage2)
{
secretCodeStage2 = true;
}
else
{
Reset();
}
}
private void PanelTopRight_Click(object sender, EventArgs e)
{
if (secretCodeStage2)
{
SecretCodeActivated(this, new EventArgs());
Reset();
}
else
{
timerReset.Start();
secretCodeStage1 = true;
}
}
private void Reset()
{
secretCodeStage1 = false;
secretCodeStage2 = false;
timerReset.Stop();
}
但是有一件有趣的事情。如果我单击右,左,左,右,它可以工作。由于某些原因,PanelTopLeft_Click,它确实将两个bools都设置为false,但是当调用PanelTopRight_Click时,两个bool仍然是真的。