2012-12-21 9 views
5

Sto creando un grafico a linee .NET in C# con un intervallo di settimane sull'asse X. Per il mio progetto, voglio solo usare l'etichetta personalizzata, ma per ora voglio ancora le linee della griglia. Qualcuno sa come nascondere le etichette X-Axis di default mantenendo le etichette personalizzate?Utilizzare solo l'etichetta personalizzata nell'asse X nella tabella .NET

ho provato questo:

Chart4.ChartAreas[0].AxisX.LabelStyle.Enabled = false; 

Il risultato evidente è che non c'erano etichette applicate, che non è quello che stavo cercando di fare.

EDIT: Il codice per generare i file originali è stata questa:

Chart4.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "M"; 

E il codice per l'etichetta personalizzata è stato questo:

int month = XValues[0].Month; 
var XAxis = Chart4.ChartAreas[0].AxisX; 

DateTime StartMonthPos = XValues[0]; 
DateTime EndPos = new DateTime(); 

foreach (DateTime Date in XValues) 
{ 
    EndPos = Date; 

    if (Date.Month != month) 
    { 
     Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 1, LabelMarkStyle.None); 
     StartMonthPos = Date; 
    } 

    month = Date.Month; 
} 

XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 1, LabelMarkStyle.None); 

Il grafico si presenta così: Chart with dates

E dovrebbe apparire così: chart without dates

+0

Si potrebbe voler esaminare in colonne – Jerome

risposta

5

OK, ho controllato i controlli Label su MSDN. Per fare in modo che l'etichetta personalizzata appaia al posto dell'etichetta normale, ho impostato il parametro RowIndex su 0, sostituendo la riga dell'etichetta predefinita. Il codice finale per le righe personalizzate assomigliava a questo:

int month = XValues[0].Month; 
    var XAxis = Chart4.ChartAreas[0].AxisX; 

    DateTime StartMonthPos = XValues[0]; 
    DateTime EndPos = new DateTime(); 

    foreach (DateTime Date in XValues) 
    { 
     EndPos = Date; 

     if (Date.Month != month) 
     { 
      Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), 
       EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None); 
      StartMonthPos = Date; 
     } 

     month = Date.Month; 
    } 

    XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), 
      StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None); 
Problemi correlati