Írjunk programot, amelynek az egyik nyomógombja elindít egy végtelen R G B generálást, a másik nyomógombja leállítja a generálást, így a Form felülete az utolsó generált színnel kerül kifestésre. A programból egy harmadik nyomógomb megnyomásával lépjen ki.
A feladat megoldása
private Brush brush = null;
private bool stop = false;
private Random rnd = new Random();
private Color color
// Start nyomógomb megnyomására indul a színek generálása
private void Start_Click(object sender, EventArgs e)
{
Stop1.Focus();
while (!stop)
{
color = Color.FromArgb(rnd.Next(256), rnd.Next(256),
rnd.Next(256));
Application.DoEvents();
}
// a stop változó true értékre állítása teszi lehetővé,
// hogy a Form felülete az utolsó generált színre
// lesz átfestve
brush = new SolidBrush(color);
Graphics g = CreateGraphics();
g.FillRectangle(brush, this.ClientRectangle);
stop = false;
}
// Stop nyomógomb megnyomása a stop változót true értékre
// állítja
private void Stop1_Click(object sender, EventArgs e)
{
stop = true;
Stop1.Focus();
}
// Kilépés a programból
private void Kilépés_Click(object sender, EventArgs e)
{
Application.Exit();
}
A program futási eredménye: