如何将数据从一个表单发送到另一个表单以创建图表

时间:2015-04-07 22:24:02

标签: c# windowsformshost

是否有可能以一种形式计算数字并用它来制作第二种形式的图表?

我只是想显示一个折线图,它从一组数字中获取数据。

我一直只使用c#一周,我知道如何制作图表的唯一方法是在当前表单上使用numericUpDown,这不是我想要的。

像这样......

Point[] pts = new Point[1000];
int count = 0;

pts[count++] = new Point((int)numericUpDown1.Value, (int)numericUpDown2.Value);

for (int i = 0; i < count; i++)
{
    if (i != 0)
    {
        this.CreateGraphics().DrawLine(new Pen(Brushes.Red, 4), pts[i - 1], pts[i]);
    }
    else
    {
        this.CreateGraphics().DrawLine(new Pen(Brushes.Red, 4), pts[i], pts[i]);
    }
}

1 个答案:

答案 0 :(得分:2)

您可以将数据传递到新表单,然后从那里绘制图表。一种方法是在构造函数中,当您创建新表单以绘制图形时,例如:

用于计算图形点(或绘制图形所需的任何数据)的表格

public class CalculationForm
{
    public CalculationForm()
    {
        InitializeComponent();

        Point[] points = CalculatePoints();

        GraphForm graphForm = new GraphForm(points);
        graphForm.Show();
    }

    private Point[] CalculatePoints()
    {
        // method to generate points
        return points;
    }
}

然后在表单中,您想要绘制图形:

public class GraphForm
{
    public GraphForm(Point[] points)
    {
        InitializeComponent();
        DrawGraph(points);
    }

    private void DrawGraph(Point[] points)
    {
        // Code to draw your graph goes here
    }
}