2010-06-27 73 views
0

我想在Windows窗体中使用ZedGraph。我导入了dll并成功地显示在UI设计器中。当我编译和运行该程序。它弹出了zedgrah烧烤的视图,但没有点。谁能帮我看看有什么不对?在C#中的ZedGraph:没有显示的点

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(); 
     } 

    } 
} 

回答

2

尝试别的地方移动CreateChart方法调用(例如的Form_Load代替zedGraphControl1_Load)

+1

感谢 你是正确的了。应该在窗体构造函数中调用。 – Grey 2010-06-28 03:13:19