bonjour
Avec Chart j'ai 5 graphiques (dans chaque graphique j'ai 3 courbes avec des abscisses HH:MM), j'aimerai pouvoir zoomer sur un des graphiques par l'appui d'un bouton zoom.
J'ai du mal à gérer ce qui doit etre dans ce bouton. Mon programme est ci dessous. Merci d'avance
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154 public partial class Form1 : Form { private List<Recette> recettes = new List<Recette>(); public Form1() { InitializeComponent(); } private void LoadBtn_Click(object sender, EventArgs e) { LoadValues(); DisplayValues(); } private void DisplayValues() { courbe.Series.Clear(); courbe.ChartAreas.Clear(); foreach (Recette rec in recettes) { ChartArea area = courbe.ChartAreas.Add(rec.Name); //area.BackColor = Color.LightBlue; //area.BackColor = Color.Green; area.BorderColor = Color.Red; area.BorderWidth = 4; foreach (Series s in rec.Series) { s.ChartArea = rec.Name; courbe.Series.Add(s); } } } private void LoadValues() { string path = Application.StartupPath + @"\texttest.txt"; Recette curRecette = null; Series curSerie = null; DateTime curTime = DateTime.Now; int recIndex = 1; int serIndex = 1; if (File.Exists(path)) { TextReader tx = new StreamReader(path); string ligne = string.Empty; while ((ligne = tx.ReadLine()) != null) { int pos = ligne.IndexOf(":"); string commande = ligne.Substring(0, pos); string value = ligne.Substring(pos + 1); switch (commande) { case "Custom Name": if (curRecette != null) { recettes.Add(curRecette); } curRecette = new Recette(); break; case "File Name": curRecette.Name = recIndex.ToString() + " " + value; recIndex++; break; case "Start": curRecette.Start = DateTime.Parse(value); break; case "End": curRecette.End = DateTime.Parse(value); break; case "Curve Name": if (curSerie != null) { curRecette.Series.Add(curSerie); } curSerie = new Series(); curSerie.XValueType = ChartValueType.Time; curSerie.YValueType = ChartValueType.Double; curSerie.ChartType = SeriesChartType.Line; curSerie.Name = serIndex.ToString() + " " + value; serIndex++; break; case "Time": curTime = DateTime.Parse(value); break; case "Data": curSerie.Points.AddXY(curTime, Double.Parse(value)); break; default: break; } } } else { MessageBox.Show("Impossible de trouver le fichier de données"); } } private void courbe_Click(object sender, EventArgs e) { } // rajout private void Zoom_Click(object sender, EventArgs e) { this.courbe.ChartAreas.FindByName("ChartArea1").RecalculateAxesScale(); //this.courbe.PrimaryXAxis.SmartDateZoomDayLevelLabelFormat = "dd MM/yy HH.00"; this.courbe.ChartAreas.FindByName("ChartArea1").AxisX.ScaleView.ZoomReset(); } //fin rajout } public class Recette { private string name; private DateTime start; private DateTime end; private List<Series> series = new List<Series>(); public List<Series> Series { get { return series; } set { series = value; } } public DateTime End { get { return end; } set { end = value; } } public DateTime Start { get { return start; } set { start = value; } } public string Name { get { return name; } set { name = value; } }
Partager