【发布时间】:2013-03-10 22:28:29
【问题描述】:
我目前正在关注 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 的解决方案之后。我添加了一个断点来查看发生了什么,当我第一次单击 btnClr_Click 时,fClr 的值是 1。但是,当我再次单击它时,fClr 得到 0,但随后又立即得到 1。不确定这是否与while (Visible) 有关。
..挠头..
【问题讨论】:
-
我仍然不确定您要完成什么。能否请您附上一些图片?