IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Affichage aleatoire de points ....!? [Débutant(e)]


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 113
    Points : 84
    Points
    84
    Par défaut [C#] Affichage aleatoire de points ....!?
    Bonjour a tous ,

    Je suis sous visual studio . net et j'apprends le c sharp !

    Je me suis fait une class que j'ai nomme MyPoint.cs que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    using System;
    using System.Drawing;
     
    namespace WiNAppliLabo3
    {
     
     public class MyPoint
     {
      private int x=0, y=0;
      private Color col = new Color();
     
     
      public MyPoint()
      {
     
      }
     
      //Methode GetX  retourne la valeur X du point
      public int GetX()
      {
       return x;
      }
     
      //Methode GetY  retourne la valeur Y du point
      public int GetY()
      {
       return y;
      }
     
      //Methode GetColor retourne la couleur du point
      public Color GetColor()
      {
       return col;
      }
     
      //Methode SetPoint définit la position du point
      public void SetPoint(int X, int Y)
      {
       x = X;
       y = Y;
      }
     
      //Methode SetColor définit la couleur du point
      public void SetColor(int R, int G, int B)
      {
       col= Color.FromArgb(R, G, B);
      }
     
      //Methode Méthode 2 de définition de la couleur
      public void SetColor(Color color)
      {
       col=color;
      }
     
      //Methode Draw permettant de dessiner le point dans une fenêtre
      public void Draw(Graphics dc)
      {
       Bitmap Bmp= new Bitmap(1,1);
       Bmp.SetPixel (0, 0, col);
       dc.DrawImage (Bmp, x, y);
      }
     
     }
    }
    cette classe a plusieurs methodes afin de permettre la creation de points

    dans ma fenetre windows je veux qu'au lancement, elle me genere des points aleatoirement voila ce que j'ai fait mais a l'affichage je n'ai rien du tout meme pas d'erreur rien !
    si quelqu'un avait une idée de se qui se passe je lui en serait reconnaissant ....
    Je vous remercie ...
    Bon week end

    Christophe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
     
    namespace WiNAppliLabo3
    {
     
     /// <summary>
     /// Summary description for Form1.
     /// </summary>
     public class Form1 : System.Windows.Forms.Form
     {
     
    /** declaration de 100.000 points **/
      MyPoint[] LesPoints = new MyPoint[100000];
        [STAThread]
      static void Main() 
      {
       Application.Run(new Form1());
     
      }
     
      private void Draw(object sender, System.Windows.Forms.PaintEventArgs e)
      {
       foreach (MyPoint pt in LesPoints)
       {
        pt.Draw (e.Graphics);
     
       }
      }
    /** chargement doit dessiner 100.000 points sur la form **/
     
      private void Form1_Load(object sender, System.EventArgs e)
      {
       int x,y, r, g, b,i=0;
       Random rnd = new Random();
       for (i=0; i<LesPoints.Length; i++)
       {
        x=rnd.Next(ClientSize.Width);
        y=rnd.Next(ClientSize.Height);
        r=rnd.Next(255);
        g=rnd.Next(255);
        b=rnd.Next(255);
        LesPoints[i] = new MyPoint();
        LesPoints[i].SetPoint(x, y);
        LesPoints[i].SetColor(r,g ,b );
       }
     
      }
     }
    }
    La forme même des pyramides d'Egypte montre que déjà les hommes avaient tendance à en faire de moins en moins.

  2. #2
    Membre habitué Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 183
    Points
    183
    Par défaut
    le problème est que ta méthode draw n'est jamais appelée...
    en fait ce que tu dois faire c'est appeler ta méthode draw dans la méthode paint de ta form, celle ci est appelée à chaque fois que ta forme est redessinée...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    	Draw(sender,e);
    }
    Voilà je pense que comme ça, ça devrait marcher....

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 113
    Points : 84
    Points
    84
    Par défaut
    salut salut del-dongo,

    C'etait exactement ca ....;-( ! Bien joué ....

    Si je peux me permettre une derniere question .....maintenant j'aimerais et ce toujours avec la meme classe ....genere lors d'un clic de souris un point avec les coordonnees x et y sur la form!
    comment je dois faire ...

    J'arrive bien a affiche les coordonnees e.X et e.Y !
    si tu savais m'aider .....je t'en serais reconnaissant ...
    Bonne semaine

    Christophe
    La forme même des pyramides d'Egypte montre que déjà les hommes avaient tendance à en faire de moins en moins.

Discussions similaires

  1. Geotools et affichage d'un point sur la carte
    Par ICS123 dans le forum SIG : Système d'information Géographique
    Réponses: 11
    Dernier message: 28/06/2009, 10h53
  2. [JpGraph] Affichage d'un point avec jpgraph
    Par jerenforce dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 30/09/2008, 23h34
  3. Affichage aleatoire d'un tableau
    Par badrel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 25/09/2007, 18h26
  4. Affichage aleatoire background
    Par garysk8 dans le forum Langage
    Réponses: 10
    Dernier message: 14/04/2006, 17h44
  5. [Conception] affichage aleatoire d'une image
    Par bellebiquette dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 24/02/2006, 22h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo