2010-07-28 27 views
1

Je développe un graphique d'évolution des stocks avec Microsoft Chart Controls et j'ai besoin de montrer les dates initiales et finales sur les étiquettes AxisX mais je ne peux pas le faire.Comment afficher toujours le premier et le dernier Label AxisX avec Microsoft Chart Controls?

I Google et trouvé de nombreuses solutions telles que définir les propriétés:

Chart1.ChartAreas[0].AxisX.Minimum = InitialDate.ToOADate(); 
Chart1.ChartAreas[0].AxisX.Maximum = FinalDate.ToOADate(); 
Chart1.ChartAreas[0].AxisX.LabelStyle.IsEndLabelVisible = true; 

Rien ne fait même differnce. J'ai besoin d'aide !

Sur l'échantillon ci-dessous la date initiale était le 26 juillet 2007 et la finale était le 26 juillet 2010, c'est ce que je dois montrer sur les étiquettes, les autres dates ne font pas de différence et peuvent être montrées n'importe quel intervalle.

alt text http://img826.imageshack.us/img826/6518/evolucaoinvestimento.png

Répondre

2

Je Cavalcades:

// get the interval in days 
double days = (double)((TimeSpan)(FinalDate - InitialDate)).Days; 

// the number os labels 
double labels = 10.0; 

// check if the number of days is bigger than labels 
if (days > labels) 
{ 
    // calculate the interval 
    double interval = days/labels; 
    Chart1.ChartAreas[0].AxisX.Interval = interval; 
} 
else 
{ 
    // set the interval of 1 day 
    Chart1.ChartAreas[0].AxisX.Interval = 1; 
} 

Voici le résultat:

chart http://img691.imageshack.us/img691/7796/chartimgca42ufcm.png

3
LCharts(iChart).Chart.ChartAreas(0).AxisX.Minimum = MinDate.ToOADate 

LCharts(iChart).Chart.ChartAreas(0).AxisX.Maximum = MaxDate.ToOADate 

LCharts(iChart).Chart.ChartAreas(0).AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount 

'LCharts(iChart).Chart.ChartAreas(0).AxisX.IsMarginVisible = True 

LCharts(iChart).Chart.ChartAreas(0).AxisX.LabelStyle.IsEndLabelVisible = True 
+0

a fonctionné pour moi. –