Rafraichissement de données en windows form [Résolu]

Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
- - Dernière réponse : ismalife
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
- 23 déc. 2010 à 11:12
Bonjour, me revoici pour ceux qui me connaissent (bientot tout le forum) lol

J'ai une nouvelle question concernant mon projet : et oui il n'est pas encore fini. Il me reste 2 mois de stage
alors autant prendre son temps afin qu'il soit le plus beau des gadgets (hi hi).

Alors ce widget m'affiche des données xml dans un datagridview, et ensuite un histogramme me compare les CA de chaque mois
pour deux années (année en cours et année précédente).
Etant donnée que les valeurs de mon XML varient ds le temps ( à chaque commande .... LOGIQUE !!!), ce que je souhaiterais faire
c'est un rafraichissement de l'histogramme.
Mais voilà, après avoir codé je me rends compte que lorsque le rafraichissement à lieu (timer), tout le style est remis en cause. Car en effet ayant choisit un affichage vertical du datgridview, au rafraichissement celui-ci redeviens horizontal, et c'est tout moche. Et mon histogramme ne se rafraichit pas du tout.

Je pense que la methode du timer est mal codé, ou alors pas placé au bonne endroit (je ne sais pas).
Ou peut etre dois je créer plusieurs timer. un pour l'histo et un autre pour le datagridview.
Je ne sais pas du tout. Voilà les questions que je me pose.

Donc si quelqu'un à un peu de patience je le remercie d'avance
Afficher la suite 

Votre réponse

20/90 réponses

Meilleure réponse
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
3
Merci
HEY les gars j'ai un code comme ceci qui va chercher directement les infos sur le xml et ça marche

 private void CreerGraphique(ZedGraphControl zgc)
        {
            string filePath = "http://www..............";
            XmlTextReader txtReader = new XmlTextReader(filePath);
            statsdataset.Clear();

            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;

            dataGridView1.DataMember = "stat";

            double[] ca = new double[12];
            double[] precCa = new double[12];

            DataRow row = statsdataset.Tables["stat"].Rows[0];
            for (int i = 0; i < 12; i++)
            {
                ca[i] = Convert.ToDouble(row["ca_" + (i + 1).ToString()].ToString().Replace('.', ','));
                precCa[i] = Convert.ToDouble(row["ca_prec_" + (i + 1).ToString()].ToString().Replace('.', ','));
            }

            GraphPane myPane = zedGraphControl1.GraphPane;

            // titre et nomination des axes x et y
            myPane.Title.Text = "Histogramme";
            myPane.XAxis.Title.Text = "Mois de l'année";
            myPane.YAxis.Title.Text = "Chiffres d'Affaires";

            string[] str = { "Janv.", "Févr.", "Mars", "Avr.", "Mai", "Juin", "Juill.", 
                    "Août", "Sept.", "Oct.", "Nov.", "Dec." };

            // creation des batons
            BarItem myCurve = myPane.AddBar("Année " + (DateTime.Now.Year - 1).ToString(), null, ca, Color.Red);
            BarItem myCurve1 = myPane.AddBar("Année " + DateTime.Now.Year.ToString(), null, precCa, Color.Green);

            // Fill the axis background with a color gradient
            myPane.Chart.Fill = new Fill(Color.White,
               Color.FromArgb(255, 255, 166), 45.0F);

            zedGraphControl1.AxisChange();

            // expand the range of the Y axis slightly to accommodate the labels
            myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;

            // Create TextObj's to provide labels for each bar
            BarItem.CreateBarLabels(myPane, false, "f0");

            // dessine les nouvelles valeurs de X à la place des anciennes
            myPane.XAxis.MajorTic.IsBetweenLabels = true;
            // appel du nouvel affichage des abcisses
            myPane.XAxis.Scale.TextLabels = str;
            // Mis en place du nouveau texte des abcisses 
            myPane.XAxis.Type = ZedGraph.AxisType.Text;

            PointPairList hList = new PointPairList();
            myPane.XAxis.Type = ZedGraph.AxisType.Text;
            // une graduation en X est egal à 1 mois
            myPane.XAxis.Scale.MajorStep = 1;
            myPane.XAxis.Scale.MajorUnit = DateUnit.Month;
            // Renverser les labels des abcisses de 65°
            myPane.XAxis.Scale.FontSpec.Angle = 65;
            myPane.XAxis.Scale.FontSpec.IsBold = true;
            myPane.XAxis.Scale.FontSpec.Size = 12;
            myPane.XAxis.Scale.Format = "M";

            zedGraphControl1.Refresh();
        }

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de ismalife
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
3
Merci
Le projet pourrait être simple.
Si les données étaient bien formée comme indiqué au départ.
Si il y a possibilité de refaire tes données en entrée ca serait plus facile à lire pour tout le monde.


Après ton code de flip et compagnie tu peux le mettre à la poubelle ;-)

J'ai été un peu bourrin sur le code, plein de nouveauté de .Net4.
Mais il reste lisible.

Il faut que tu restructures un peu ton programme.

C'est pour ca que j'avais fait des méthodes

--> ReadData()
--> BindDataGrid()
--> DrawGraph()

Ca sera plus simple pour quelqu'un qui va reprendre ton code apres.

Et enlevé toutes les traces de constructions et mettre à jour les commentaires.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de nhervagault
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Je vois pas trop où est le problème cette fois-ci:
- tu as un timer qui rafraîchi
- tu sais extraire les données de ton XML pour les mettre dans l'histo, avec le formatage voulu (j'ose espérer que tout peut être appelé par une seule fonction)
-> tu n'as plus qu'à faire le lien entre le timer et cette fonction

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
salut buno

le refresh marche mais le problème est que l'affichage redeviens à l'état initial.....
Je veux que le style que je lui ai appliqué reste tel quel
a savoir l'affichage vertical, la couleur de certaine cellule, la suppression de certaine cellule (qui revienne au moment du refresh).
Commenter la réponse de ismalife
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
l'affichage du datagrid view qui change ( oublié de préciser )
Commenter la réponse de ismalife
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
il faut donc rafraîchir également le formatage

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
hein !!! quand tu parles de formatage, c'est le "style" que j'ai appliqué que tu veux dire ????
Commenter la réponse de ismalife
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Oui

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
ok ok vais essayé alors

Merci buno
Commenter la réponse de ismalife
Messages postés
155
Date d'inscription
jeudi 12 mai 2005
Dernière intervention
8 mars 2011
0
Merci
Le formatage conditionnel devrait être appliqué de manière permanente étant donné que tu utilises la même datagridview mais change uniquement sa source de données.
Où déclares-tu ton formatage conditionnel?

N'oublies pas d'appeler la méthode refresh permettant d'actualiser ton affichage (valeur + formatage) après avoir assigné ton DataSource.
Tu as quelque chose comme ceci:
dataGridView1.DataSource = list;
dataGridView1.Refresh();

Shao.
Commenter la réponse de Shaolyne
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
Salut SHAO !!!
ça faisait longtemps......

Je declare mon formatage dans le form_load....
J'écris d'abord la methode du timer en dessous de mon form et ensuite je renvois le code suivant dans le form_load

Timer TimerStats = new Timer();
TimerStats.Interval = 1000;
TimerStats.Tick += TimerStats_Tick;
TimerStats.Start();
Commenter la réponse de ismalife
Messages postés
155
Date d'inscription
jeudi 12 mai 2005
Dernière intervention
8 mars 2011
0
Merci
Ok. Il ne faut donc pas le "refaire" à chaque modification des données.
Il te suffit d'appeler le refresh dans l'évènement tick de ton timer, juste après la modification de la propriété DataSource.

Shao.
Commenter la réponse de Shaolyne
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
ok je vois j'essaye et je te redis

encor merci
Commenter la réponse de ismalife
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
Et ben le problème est toujours le meme ou alors c'est moi qui n'est pas compris
Commenter la réponse de ismalife
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Fais voir ton code...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
tu veux le code entier de tout le gadget ????
Commenter la réponse de ismalife
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
namespace widget
{
    public partial class Form1 : Form
    {
        DataSet ds = null;
        DataTable dt = null;

        int tickStart = 0;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            
            dataGridView1.DataMember = "stat";

            // rendre invisibles les colonnes suivantes
            
            dataGridView1.Columns["ca_1"].Visible = false;
            dataGridView1.Columns["ca_2"].Visible = false;
            dataGridView1.Columns["ca_3"].Visible = false;
            dataGridView1.Columns["ca_4"].Visible = false;
            dataGridView1.Columns["ca_5"].Visible = false;
            dataGridView1.Columns["ca_6"].Visible = false;
            dataGridView1.Columns["ca_7"].Visible = false;
            dataGridView1.Columns["ca_8"].Visible = false;
            dataGridView1.Columns["ca_9"].Visible = false;
            dataGridView1.Columns["ca_10"].Visible = false;
            dataGridView1.Columns["ca_11"].Visible = false;
            dataGridView1.Columns["ca_12"].Visible = false;
            dataGridView1.Columns["ca_prec"].Visible = false;
            dataGridView1.Columns["ca_prec_1"].Visible = false;
            dataGridView1.Columns["ca_prec_2"].Visible = false;
            dataGridView1.Columns["ca_prec_3"].Visible = false;
            dataGridView1.Columns["ca_prec_4"].Visible = false;
            dataGridView1.Columns["ca_prec_5"].Visible = false;
            dataGridView1.Columns["ca_prec_6"].Visible = false;
            dataGridView1.Columns["ca_prec_7"].Visible = false;
            dataGridView1.Columns["ca_prec_8"].Visible = false;
            dataGridView1.Columns["ca_prec_9"].Visible = false;
            dataGridView1.Columns["ca_prec_10"].Visible = false;
            dataGridView1.Columns["ca_prec_11"].Visible = false;
            dataGridView1.Columns["ca_prec_12"].Visible = false;

            // suppression de la colonne vide de gauche; 
            dataGridView1.RowHeadersVisible = false;

            // initialisation de la couleur du bouton, au chargement
            btn_stats.BackColor = Color.LightSkyBlue;

            // modif des titres
            dataGridView1.Columns["ca"].HeaderText = "Chiffre d'Affaires";
            dataGridView1.Columns["nb_cmd"].HeaderText = "Nombre de Commandes";
            dataGridView1.Columns["ca_mois"].HeaderText = "CA / Mois";
            dataGridView1.Columns["ca_moyenne_jour"].HeaderText = "CA Moyen / Jour";
            dataGridView1.Columns["prix_moyen_cmd"].HeaderText = "Prix Moyen Commande";
            dataGridView1.Columns["prix_moyen_produit"].HeaderText = "Prix Moyen Produit";

            // Mise en italique des valeurs
            dataGridView1.Columns[1].DefaultCellStyle.Font = new Font(Control.DefaultFont, FontStyle.Italic);

            // Couleur de separation des cellules
            dataGridView1.GridColor = Color.White;

            // on enleve le focus de selection
            this.dataGridView1.Rows[0].Selected = false;

            // Suppression des rangées d'entete
            dataGridView1.ColumnHeadersVisible = true;

             // appel des methodes de l'affichage vertical
            ds = new DataSet();
            dt = new DataTable();

            dt = GetStats();
            ds.Tables.Add(dt);

            DataView my_DataView = ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

            DataSet new_ds = FlipDataSet(ds);
            my_DataView = new_ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

            //retourne le Graphique au chargement du widget
            CreerGraphique(zedGraphControl1);
            
            //rafraichissement de l'histogramme
            timer1.Interval = 50;
            timer1.Enabled = true;
            timer1.Start();

            tickStart = Environment.TickCount;

        } 

         // bouton "page 1" du datagridV.
        private void btn_stats_Click(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            
            dataGridView1.DataMember = "stat";

            // rendre invisibles les colonnes suivantes
            
            dataGridView1.Columns["ca_1"].Visible = false;
            dataGridView1.Columns["ca_2"].Visible = false;
            dataGridView1.Columns["ca_3"].Visible = false;
            dataGridView1.Columns["ca_4"].Visible = false;
            dataGridView1.Columns["ca_5"].Visible = false;
            dataGridView1.Columns["ca_6"].Visible = false;
            dataGridView1.Columns["ca_7"].Visible = false;
            dataGridView1.Columns["ca_8"].Visible = false;
            dataGridView1.Columns["ca_9"].Visible = false;
            dataGridView1.Columns["ca_10"].Visible = false;
            dataGridView1.Columns["ca_11"].Visible = false;
            dataGridView1.Columns["ca_12"].Visible = false;
            dataGridView1.Columns["ca_prec"].Visible = false;
            dataGridView1.Columns["ca_prec_1"].Visible = false;
            dataGridView1.Columns["ca_prec_2"].Visible = false;
            dataGridView1.Columns["ca_prec_3"].Visible = false;
            dataGridView1.Columns["ca_prec_4"].Visible = false;
            dataGridView1.Columns["ca_prec_5"].Visible = false;
            dataGridView1.Columns["ca_prec_6"].Visible = false;
            dataGridView1.Columns["ca_prec_7"].Visible = false;
            dataGridView1.Columns["ca_prec_8"].Visible = false;
            dataGridView1.Columns["ca_prec_9"].Visible = false;
            dataGridView1.Columns["ca_prec_10"].Visible = false;
            dataGridView1.Columns["ca_prec_11"].Visible = false;
            dataGridView1.Columns["ca_prec_12"].Visible = false;

            // suppression de la colonne vide de gauche; 
            dataGridView1.RowHeadersVisible = false;

            // couleur des boutons lors de la pression
            btn_stats.BackColor = Color.LightSkyBlue;
            btn_comm.BackColor = Color.LightGray;

            // modif des titres
            dataGridView1.Columns["ca"].HeaderText = "Chiffres d'Affaires";
            dataGridView1.Columns["nb_cmd"].HeaderText = "Nombres de Commandes";
            dataGridView1.Columns["ca_mois"].HeaderText = "CA / Mois";
            dataGridView1.Columns["ca_moyenne_jour"].HeaderText = "CA Moyen / Jour";
            dataGridView1.Columns["prix_moyen_cmd"].HeaderText = "Prix Moyen Commande";
            dataGridView1.Columns["prix_moyen_produit"].HeaderText = "Prix Moyen Produit";  
         
            // Mise en italique des valeurs
            dataGridView1.Columns[1].DefaultCellStyle.Font = new Font(Control.DefaultFont, FontStyle.Italic);

            // Couleur de separation des cellules
            dataGridView1.GridColor = Color.White;

            // on enleve le focus de selection
            this.dataGridView1.Rows[0].Selected = false;

            // Suppression des rangées d'entete
            dataGridView1.ColumnHeadersVisible = true;

             // appel des methodes de l'affichage vertical
            ds = new DataSet();
            dt = new DataTable();

            dt = GetStats();
            ds.Tables.Add(dt);

            DataView my_DataView = ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

            DataSet new_ds = FlipDataSet(ds);
            my_DataView = new_ds.Tables[0].DefaultView;
            this.dataGridView1.DataSource = my_DataView;

           
        }

        // BOUTON "PAGE 2" du datagridV.
        private void btn_comm_Click(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_cmdjour.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            comsdataset.Clear();
            comsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = comsdataset;
            
            dataGridView1.DataMember = "commande";

            dataGridView1.Columns["id"].Visible = false;
            dataGridView1.Columns["statut"].Visible = false;

            // renommination des titres
            dataGridView1.Columns["date_com"].HeaderText = "DATE DE COMMANDE";
            dataGridView1.Columns["total"].HeaderText = "TOTAL";
            dataGridView1.Columns["type_paiement"].HeaderText = "PAIEMENT";

            // redimensionnement des colonnes par rapport a la largeur du widget
            dataGridView1.Columns[1].Width = 85;
            dataGridView1.Columns[3].Width = 70;
            dataGridView1.Columns[4].Width = 54;

            // couleur des boutons lors de la pression
            btn_comm.BackColor = Color.LightSkyBlue;
            btn_stats.BackColor = Color.LightGray;

            dataGridView1.ColumnHeadersVisible = true;

            // appel de la methode cellFormating de la page 2 pour la colorisation des cellules
            dataGridView1.CellFormatting += dataGridView1_CellFormatting;                       
        }

        // couleur de cellules 
        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (dataGridView1.Columns[e.ColumnIndex].Name == "date_com")
            {
                //Vérification de la valeur dans la colonne Statut
                if ((String)dataGridView1.Rows[e.RowIndex].Cells["statut"].Value == "1")
                {
                    e.CellStyle.BackColor = Color.LightGreen;
                }
                else
                {
                    e.CellStyle.BackColor = Color.Purple;
                }
            }
        }

        private static DataTable GetStats()
        {
            //Initialisation de notre dataTable afin d'inverser
            DataTable table = new DataTable();
            table.TableName = "stats";

            table.Columns.Add("ca", typeof(string));
            table.Columns.Add("prix_moyen_produit", typeof(string));
            table.Columns.Add("prix_moyen_cmd", typeof(string));
            table.Columns.Add("ca_moyenne_jour", typeof(string));
            table.Columns.Add("ca_mois", typeof(string));
            table.Columns.Add("nb_cmd", typeof(string));

            table.Rows.Add(new object[] { "295092.46", "16.08", "36.77", "957.47", "23936.63", "651" });
            table.AcceptChanges();
            return table;            
        }


        public DataSet FlipDataSet(DataSet my_DataSet)
        {
            // methode qui inverse notre dataTable
            DataSet ds = new DataSet();

            foreach (DataTable dt in my_DataSet.Tables)
            {
                DataTable table = new DataTable();

                for (int i = 0; i <= dt.Rows.Count; i++)
                { table.Columns.Add(Convert.ToString(i)); }

                DataRow r;
                for (int k = 0; k < dt.Columns.Count; k++)
                {
                    r = table.NewRow();
                    r[0] = dt.Columns[k].ToString();
                    for (int j = 1; j <= dt.Rows.Count; j++)
                    { r[j] = dt.Rows[j - 1][k]; }
                    table.Rows.Add(r);
                }
                ds.Tables.Add(table); 
            }

            return ds;
        }
         
        private void zedGraphControl1_Load(object sender, EventArgs e)
        {
            CreerGraphique(zedGraphControl1);
        }

        private void CreerGraphique(ZedGraphControl zgc)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            
            dataGridView1.DataMember = "stat";


            GraphPane myPane = zgc.GraphPane;

            // titre et nomination des axes x et y
            myPane.Title.Text = "Histogramme";
            myPane.XAxis.Title.Text = "Mois de l'année";
            myPane.YAxis.Title.Text = "Chiffres d'Affaires";

            // Points de données
            double[] y0 = { 19827.12, 14928.46, 25272.96, 19623.87, 21904.70, 21048.11, 22198.30, 
                              23601.44, 25253.49, 24434.42, 25627.56, 22124.15 };
            double[] y1 = { 28275.62, 24057.57, 30730.60, 25599.90, 23995.63, 25427.58, 26232.15, 
                              29093.91, 29657.87, 28085.00, 28692.82, 3668.93 };
            string[] str = { "Janv.", "Févr.", "Mars", "Avr.", "Mai", "Juin", "Juill.", 
                                "Août", "Sept.", "Oct.", "Nov.", "Dec." };
            

            // creation des batons
            BarItem myCurve = myPane.AddBar("Année 2009", null, y0, Color.Red);
            BarItem myCurve1 = myPane.AddBar("Année 2010", null, y1, Color.Green);

            
            // Fill the axis background with a color gradient
            myPane.Chart.Fill = new Fill(Color.White,
               Color.FromArgb(255, 255, 166), 45.0F);

            zgc.AxisChange();

            // expand the range of the Y axis slightly to accommodate the labels
            myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;

            // Create TextObj's to provide labels for each bar
            BarItem.CreateBarLabels(myPane, false, "f0");

            // dessine les nouvelles valeurs de X à la place des anciennes
            myPane.XAxis.MajorTic.IsBetweenLabels = true;
            // appel du nouvel affichage des abcisses
            myPane.XAxis.Scale.TextLabels = str;
            // Mis en place du nouveau texte des abcisses 
            myPane.XAxis.Type = ZedGraph.AxisType.Text;

            PointPairList hList = new PointPairList();
            myPane.XAxis.Type = ZedGraph.AxisType.Text;
            // une graduation en X est egal à 1 mois
            myPane.XAxis.Scale.MajorStep = 1;
            myPane.XAxis.Scale.MajorUnit = DateUnit.Month;
            // Renverser les labels des abcisses de 65°
            myPane.XAxis.Scale.FontSpec.Angle = 65;
            myPane.XAxis.Scale.FontSpec.IsBold = true;
            myPane.XAxis.Scale.FontSpec.Size = 12;
            myPane.XAxis.Scale.Format = "M";

        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            SetSize();
        }
        private void SetSize()
        {
            // permet de laisser une marge de 10 pixels tout autour du graphique
            zedGraphControl1.Location = new Point(10, 10);
            zedGraphControl1.Size = new Size(ClientRectangle.Width - 20, ClientRectangle.Height - 20);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            string filePath = "http://www.beautefrance.com:8080/script/widget_statsvente.php";
            XmlTextReader txtReader = new XmlTextReader(filePath);

            statsdataset.Clear();
            statsdataset.ReadXml(txtReader);
            dataGridView1.DataSource = statsdataset;
            zedGraphControl1.Refresh();
            dataGridView1.DataMember = "stat";

            if (zedGraphControl1.GraphPane.CurveList.Count <= 0)
                return;

            LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;
            if (curve == null)
                return;

            IPointListEdit list = curve.Points as IPointListEdit;
          
            if (list == null)
                return;

            double time = (Environment.TickCount - tickStart) / 1000.0;

            // 3 secondes par cycle
            list.Add(time, Math.Sin(2.0 * Math.PI * time / 3.0));

            Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;
            if (time > xScale.Max - xScale.MajorStep)
            {
                xScale.Max = time + xScale.MajorStep;
                xScale.Min = xScale.Max - 30.0;
            }

            zedGraphControl1.AxisChange();
            // forcer le redessinage du graphe
            zedGraphControl1.Invalidate();
           
        }
    }
}

Commenter la réponse de ismalife
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
Ben bon courage quoi !!!!!
Commenter la réponse de ismalife
Messages postés
193
Date d'inscription
jeudi 25 novembre 2010
Dernière intervention
11 janvier 2011
0
Merci
On dirait que mon code fait peur
Commenter la réponse de ismalife
Messages postés
14289
Date d'inscription
lundi 11 juillet 2005
Dernière intervention
14 décembre 2018
0
Merci
Que nenni...mais je viens de rentrer
Je regarde ça de plus près

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Rejoignez mon réseau professionnel sur Viadeo
Commenter la réponse de BunoCS

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.