我目前正在关注 Head First C#,但我经常自己玩。我遇到了我无法解决的情况。我想this.BackColor
从 MediumBlue 更改为通过绿色 0 - 255 并通过按钮 I/O 返回控制台。问题是我无法让颜色停止步进并返回到 MediumBlue。
private void btnClr_Click(object sender, EventArgs e)
{
int fClr = 0;
while (Visible)
{
if (fClr == 0)
{
fClr++;
for (int nBackClr = 0; nBackClr < 255 && Visible; nBackClr++)
{
this.BackColor = Color.FromArgb(nBackClr, 255 - nBackClr, nBackClr);
Application.DoEvents();
Thread.Sleep(2);
}
for (int z = 255; z >= 0 && Visible; z--)
{
this.BackColor = Color.FromArgb(z, 255 - z, z);
Application.DoEvents();
Thread.Sleep(2);
}
}
else
{
fClr--;
this.BackColor = Color.MediumBlue;
Application.DoEvents();
Thread.Sleep(1);
}
}
}
我想知道的另一件事是如何BackColor
通过整个调色板。
编辑:S/n应用 JABFreeware 的解决方案后。我添加了一个断点来查看发生了什么,并fClr
在我第一次单击时获取 1 的值btnClr_Click
。但是,当我再次单击它时,它fClr
会变为 0,但随后又会立即变为 1。不确定这是否与while (Visible)
. ..挠头..