Page d'acceuil

Informatique > C# > Exemples simples

Tracé de lignes aléatoires:

L'utilisateur peut choisir le nombre de lignes, leur couleur et leur épaisseur. Voici tout d'abord le code du tracé proprement dit:

private void button1_Click(object sender, System.EventArgs e)
{
int N; // nombre de lignes
int i; // indice
Random alea = new Random(); // nombre aléatoire pour les extrémités des lignes
Pen pen = new Pen (panel1.BackColor, trackBar1.Value); // choix de couleur et épaisseur des lignes
Color CouleurFond = Color.White; // choix de la couleur de fond try {
N = Int32.Parse(nbLignes.Text); // validation du nombre de lignes
}
catch (Exception) {
MessageBox.Show("N doit être un entier");
return;
} // remplissage d'une partie de la zone client
Rectangle rc = new Rectangle(new Point(0, 50), ClientSize);
Graphics g = CreateGraphics();
g.FillRectangle(new SolidBrush(CouleurFond), rc); for (i=0; i<N; i++){ // tracé des lignes
g.DrawLine (pen ,alea.Next(0, ClientSize.Width), alea.Next(50 + trackBar1.Value / 2, ClientSize.Height), alea.Next(0, ClientSize.Width), alea.Next(50 + trackBar1.Value / 2, ClientSize.Height));
}
}

 

Un clic sur le panel représentant la couleur permet d'appeler un dialogue de choix de couleur et d'affecter la couleur choisie au panel:

private void panel1_Click(object sender, System.EventArgs e)
{
DialogResult res = colorDialog1.ShowDialog(); // choix de la couleur du tracé
if (res == DialogResult.OK) {
panel1.BackColor = colorDialog1.Color; // remplissage avec la couleur choisie
}
}

 

Le déplacement du trackBar permet de choisir l'épaisseur des lignes. On met ici à jour un label avec la valeur de l'épaisseur:

private void trackBar1_ValueChanged(object sender, System.EventArgs e)
{
label4.Text = trackBar1.Value.ToString();
}