2010-06-27 4 views
0

J'essaie ZedGraph sous Windows. J'ai importé la DLL et il montre dans le concepteur d'interface utilisateur avec succès. quand je compile et exécute le programme. il affiche la vue grillée de zedgrah, mais aucun point dessus. quelqu'un pourrait-il m'aider à voir ce qui n'allait pas?ZedGraph en C#: aucun point affiché

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using ZedGraph; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form2 : Form 
    { 
     public Form2() 
     { 
      InitializeComponent(); 
     } 

     private void zedGraphControl1_Load(object sender, EventArgs e) 
     { 
      CreateChart(zedGraphControl1); 
     } 
     public void CreateChart(ZedGraphControl zgc) 
     { 
      GraphPane myPane = zgc.GraphPane; 

      // Set the title and axis labels 
      myPane.Title.Text = "Line Graph with Band Demo"; 
      myPane.XAxis.Title.Text = "Sequence"; 
      myPane.YAxis.Title.Text = "Temperature, C"; 

      // Enter some random data values 
      double[] y = { 100, 115, 75, 22, 98, 40, 10 }; 
      double[] y2 = { 90, 100, 95, 35, 80, 35, 35 }; 
      double[] y3 = { 80, 110, 65, 15, 54, 67, 18 }; 
      double[] x = { 100, 200, 300, 400, 500, 600, 700 }; 

      // Fill the axis background with a color gradient 
      myPane.Chart.Fill = new Fill(Color.FromArgb(255, 255, 245), Color.FromArgb(255, 255, 190), 90F); 

      // Generate a red curve with "Curve 1" in the legend 
      LineItem myCurve = myPane.AddCurve("Curve 1", x, y, Color.Red); 
      // Make the symbols opaque by filling them with white 
      myCurve.Symbol.Fill = new Fill(Color.White); 

      // Generate a blue curve with "Curve 2" in the legend 
      myCurve = myPane.AddCurve("Curve 2", x, y2, Color.Blue); 
      // Make the symbols opaque by filling them with white 
      myCurve.Symbol.Fill = new Fill(Color.White); 

      // Generate a green curve with "Curve 3" in the legend 
      myCurve = myPane.AddCurve("Curve 3", x, y3, Color.Green); 
      // Make the symbols opaque by filling them with white 
      myCurve.Symbol.Fill = new Fill(Color.White); 

      // Manually set the x axis range 
      myPane.XAxis.Scale.Min = 0; 
      myPane.XAxis.Scale.Max = 800; 
      // Display the Y axis grid lines 
      myPane.YAxis.MajorGrid.IsVisible = true; 
      myPane.YAxis.MinorGrid.IsVisible = true; 

      // Draw a box item to highlight a value range 
      BoxObj box = new BoxObj(0, 100, 1, 30, Color.Empty, 
        Color.FromArgb(150, Color.LightGreen)); 
      box.Fill = new Fill(Color.White, Color.FromArgb(200, Color.LightGreen), 45.0F); 
      // Use the BehindAxis zorder to draw the highlight beneath the grid lines 
      box.ZOrder = ZOrder.E_BehindCurves; 
      // Make sure that the boxObj does not extend outside the chart rect if the chart is zoomed 
      box.IsClippedToChartRect = true; 
      // Use a hybrid coordinate system so the X axis always covers the full x range 
      // from chart fraction 0.0 to 1.0 
      box.Location.CoordinateFrame = CoordType.XChartFractionYScale; 
      myPane.GraphObjList.Add(box); 

      // Add a text item to label the highlighted range 
      TextObj text = new TextObj("Optimal\nRange", 0.95f, 85, CoordType.AxisXYScale, 
            AlignH.Right, AlignV.Center); 
      text.FontSpec.Fill.IsVisible = false; 
      text.FontSpec.Border.IsVisible = false; 
      text.FontSpec.IsBold = true; 
      text.FontSpec.IsItalic = true; 
      text.Location.CoordinateFrame = CoordType.XChartFractionYScale; 
      text.IsClippedToChartRect = true; 
      myPane.GraphObjList.Add(text); 

      // Fill the pane background with a gradient 
      myPane.Fill = new Fill(Color.WhiteSmoke, Color.Lavender, 0F); 

      // Calculate the Axis Scale Ranges 
      zgc.AxisChange(); 
     } 

    } 
} 

Répondre

2

Essayez de déplacer l'appel de méthode CreateChart un autre (par exemple Form_load au lieu de zedGraphControl1_Load)

+1

grâce vous avez raison à ce sujet. devrait être appelé dans le constructeur de formulaire. – Grey

Questions connexes