本帖最后由 wangnadh 于 2012-03-19 10:38:56 编辑

解决方案 »

  1.   

    何不用MSChart
    或者Silverlight的Chart控件呢?
      

  2.   

    可以用第三方控件嘛,做起来不用这么麻烦的,ACTIVE REPORT还有DUNCHAR都可以很方便的实现的。SILVERLIGHT的CHART只能web使用吧?
      

  3.   

    建议你做成用户控件的形式,你这样做的会存在重绘太频繁。给你个思路不知道适合不适合你!
    两个Bitmap,一个画背景、一个画数据图。
      

  4.   


    囧为什么我这里连坐标都没有……
    有人和我说可能是load事件关联的问题……我也不知道该如何弄,有没有可能是这方面的?
      

  5.   

    ??
    那个如果说的是这句话的话
    pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);我调试的时候,没有//掉,照样不行啊
      

  6.   

    还是用 第三方控件吧,mschart,teechart都可以,效果都很好的
      

  7.   

    用 mschart 将Type选择Line
      

  8.   

    vs2010只要用Chart控件 
    using System.Web.UI.DataVisualization.Charting;
     DataSet dsHis =GetData();            //if (dsHis.Tables[0].Rows.Count == 0)
                //{
                //    return;            //}
                Chart1.ImageLocation = "GaugeImages";
                //Chart1.
                //
                Title title1 = new Title();
                title1.Name = "Title1";
                title1.Text = "历史曲线"; 
                Chart1.Titles.Add(title1);
                Legend legend = new Legend();
                legend.Name = "Legend1";
                Chart1.Legends.Add(legend);            //////////////
                //qqq            Chart1.Series.Clear();
                Chart1.ChartAreas[0].Position.Auto = true;
                Chart1.ChartAreas[0].InnerPlotPosition.Auto = true;
                //GETTIME,AREAID,SF6VALUE,O2VALUE
                Series series;
                foreach (DataColumn column in dsHis.Tables[0].Columns)
                {
                    series = null;
                    switch (column.ColumnName)
                    {
                        case "TVALUE":
                            series = Chart1.Series.Add("温度(℃)");
                            series.YValueMembers = "TVALUE";
                            series.ToolTip = "温度:#VAL \n采集时间:#VALX{MM-dd HH:mm}";
                            //WeatherChart2.Series.Add(series);
                            break;
                                             default:
                            break;
                    }//end switch (column.ColumnName)
                    if (series != null)
                    {
                        series.ChartType = SeriesChartType.Spline;
                        series.MarkerStyle = MarkerStyle.Circle;
                        series.MarkerSize = 5;
                        series.BorderWidth = 2;
                        series.XValueMember = "GETTIME";
                        series.XValueType = ChartValueType.DateTimeOffset;
                    }
                }//end   foreach  DataColumn column in ds.Tables[0].Columns
                Chart1.ChartAreas[0].AxisX.LabelStyle.Format = "MM-dd HH:mm";
                Chart1.DataSource = dsHis;
                Chart1.DataBind();
      

  9.   


    找到原因了,的确是少了注册事件,不过不是放在load下的,在public下就好了……
    囧啊囧