C# 如何在运行时构建图表

C# 如何在运行时构建图表,c#,.net,winforms,charts,C#,.net,Winforms,Charts,在winforms项目中,如果我在设计时添加一个图表控件,下面的代码将完美地构建和显示一个图表 但是,如果表单上没有chart1(在设计时),如果我在运行时创建相同的chart1: Chart chart1 = new Chart(); 添加系列 然后将其添加到我的表单中: this.Controls.Add(chart1); 将显示一个空图表,就好像未添加序列一样 我需要在运行时完全构建图表。有人能帮我吗 using System.Windows.Forms; using System.W

在winforms项目中,如果我在设计时添加一个图表控件,下面的代码将完美地构建和显示一个图表

但是,如果表单上没有
chart1
(在设计时),如果我在运行时创建相同的
chart1

Chart chart1 = new Chart();
添加系列

然后将其添加到我的表单中:

this.Controls.Add(chart1);
将显示一个空图表,就好像未添加序列一样

我需要在运行时完全构建图表。有人能帮我吗

using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace Test
{
    public partial class Charts : Form
    {
        public Charts()
        {
            InitializeComponent();
            //Chart chart1 = new Chart();
            chart1.Series.Clear();
            chart1.Titles.Add("My Chart");

            chart1.Series.Add("Load");
            chart1.Series["Load"].ChartType = SeriesChartType.Column;

            chart1.Series["Load"].Points.AddXY(1, 40);
            chart1.Series["Load"].Points.AddXY(2, 60);
            chart1.Series["Load"].Points.AddXY(3, 80);
            chart1.Series["Load"].Points.AddXY(4, 100);
            chart1.Series["Load"].Points.AddXY(5, 110);
            chart1.Series["Load"].Points.AddXY(6, 80);
            chart1.Series["Load"].Points.AddXY(7, 70);

            //this.Controls.Add(chart1);

        }
    }
}

我只是不认为您已经成功地从设计器中获取了所有代码。这里有一个对我来说最简单的例子:

using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;

namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            var chart = new Chart();

            chart.ChartAreas.Add(new ChartArea());

            var series = new Series();
            series.Points.AddXY(1.0, 42.0);
            series.Points.AddXY(2.0, 47.0);
            series.Points.AddXY(3.0, 53.0);
            chart.Series.Add(series);

            chart.Location = new System.Drawing.Point(10, 10);
            chart.Size = new System.Drawing.Size(500, 400);

            this.Controls.Add(chart);
        }
    }
}

请使用您要删除的编程语言/框架进行标记,以避免人们猜测。首先使用designer设计图表。其次,学习在.designer.cs中生成的代码。第三,使用类似的方法构建图表,而不使用设计器。