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

C# Discussion :

Est-ce possible de réaliser un LiveChart avec VS 2019 WinForm C# .net Framework


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Est-ce possible de réaliser un LiveChart avec VS 2019 WinForm C# .net Framework
    Bonjour,

    J'ai suivi ce tuto :


    Malheureusement le rechargement à chaud ne se fait pas, je dois toujours appuyer sur le bouton de rechargement.
    Mon programme form1.cs :

    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
    66
    67
    68
    69
    70
    71
    72
     
     
    using LiveCharts;
    using LiveCharts.Wpf;
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace livechart
    {
        public partial class Form1 : Form
        {            
     
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                revenueBindingSource.DataSource = new List<Revenue>();
                cartesianChart1.AxisX.Add(new LiveCharts.Wpf.Axis
                {
                    Title = "Mois",
                    Labels = new [] {"jan","fev","mar","avr","mai","juin","juill","aout","sep","oct","nov","dec"}
                });
                cartesianChart1.AxisY.Add(new LiveCharts.Wpf.Axis 
                {
                    Title = "Revenue",
                    LabelFormatter = value=>value.ToString("C")
                });
                cartesianChart1.LegendLocation = LiveCharts.LegendLocation.Right;
     
     
     
            }
     
            private void btn_charg_Click(object sender, EventArgs e)
            {
                // init données
                cartesianChart1.Series.Clear();
                SeriesCollection series = new SeriesCollection();
                var années = (from o in revenueBindingSource.DataSource as List<Revenue>
                              select new { année = o.année }).Distinct();
                foreach(var an in années)
                {
                    List<double> values = new List<double>();
                    for (int month = 1; month <= 12; month ++)
                    {
                        double value = 0;
                        var data = from o in revenueBindingSource.DataSource as List<Revenue>
                                   where o.année.Equals(an.année) && o.mois.Equals(month)
                                   orderby o.mois ascending
                                   select new { o.total, o.mois };
                        if(data.SingleOrDefault() != null)                   
                            value = data.SingleOrDefault().total;
                        values.Add(value);                   
                    }
                    series.Add(new LineSeries() { Title = an.année.ToString(), Values = new ChartValues<double>(values) });
     
                }
                cartesianChart1.Series = series;
     
            }
        }
    }
    Ma classe "Revenue"

    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
     
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace livechart
    {
        public class Revenue
        {
            public int année { get; set; }
            public int mois { get; set; }
            public double total { get; set; }
        }
    }
    Mon résultat :

    Nom : livechart.JPG
Affichages : 384
Taille : 51,1 Ko

    On voit bien que le rechargement à chaud n'est pas possible.

    Je ne vois pas comment faire.

    Je vous remercie par avance.

    Régis

  2. #2
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 16
    Points : 13
    Points
    13
    Par défaut Abandon du livechart
    Bonjour,

    Finalement je me passe du livechart. j'utilise un chart que j'actualise en même temps que ma datagridview.

    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
     
     
    public void AddDataMethod(string myString) //Ajout dans Datagridview et dans chart1
            {
                string x;//
                float y;//
                string heure = DateTime.Now.ToString("HH");
                string min = DateTime.Now.ToString("mm");
                string enreg = heure + "H" + min;            
                myString = myString.Replace("\r", "");
                char[] sep = { ',' };
                string[] tab = myString.Split(sep);
                dataGridView1.Rows.Add(enreg, tab[0],tab[1]);
                x = enreg;//
                y = float.Parse(tab[1].Replace(".", ","));//
                chart1.Series[0].Points.AddXY(x, y);//// Dessin
            }
    Bonne soirée.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2009, 16h26
  2. [Outil] est il possible de creer des aplications avec php
    Par reski dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/03/2006, 18h25
  3. Réponses: 3
    Dernier message: 07/04/2005, 15h04
  4. Réponses: 7
    Dernier message: 08/03/2004, 15h30
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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