C#のコードのコードには簡単な問題があります。コードは、ボタンをクリックするたびに背景色を変更することを想定しています。問題は、色を緑色に変え、即座に紫色に戻ってしまうことです。もう一度クリックすると、状況と色は変わりません。私は1つの反復の後、パラメータがデフォルトに戻るように見えるため、Application.DeEvents()に問題があると思います。これは明らかに本の瑕疵ですが、とにかくそれを機能させたかったのです。私は非常に同じコードについての質問を見つけましたが、それはforループのためであり、なぜコードが最初に機能しないのかは言えません。C#ボタンを使用してフォームの背景色を変更する
{
for (int c = 0; c < 254 && Visible; c++)
{
this.BackColor = Color.FromArgb(c, 255 - c, c);
Application.DoEvents();
System.Threading.Thread.Sleep(5);
}
}
}
なぜループしていますか?あなたは色のアニメーションを何かしようとしていますか? – Blorgbeard
私はボタンをクリックするたびにフォームの背景色を変更する必要があります。 – Mike
5ミリ秒ごとにバックカラーを変更していますが、実際には色の変化に気づくことはありません –