私は現在 Head First C# に従っていますが、ときどき自分で遊んでいます。解決できない状況に陥りました。this.BackColor
MediumBlue から Green 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);
}
}
}
私が知りたいもう 1 つのことはBackColor
、全体のカラー パレットを通過させる方法です。
編集: S/n JABFreeware のソリューションを適用した後。何が起こっているかを確認するためにブレークポイントを追加し、fClr
最初に をクリックしたときに 1 の値を取得しますbtnClr_Click
。ただし、もう一度クリックするfClr
と0になりますが、すぐに再び1になります。これが と関係があるかどうかはわかりませんwhile (Visible)
。..ヘッドスクラッチャー..