如何在另一个窗体窗体中显示图形

时间:2014-06-26 00:43:04

标签: c# winforms forms visual-studio windows-forms-designer

我正在开发一个Windows窗体应用程序,到目前为止,一切看起来都非常简单。我目前有一个表单,它接受一些用户输入并以当前形式显示在图表中。

我想修改这个应用程序,以便主窗体只接受输入,按下“go”按钮后,绘制的数据将被绘制成图形,但这次是以一种应该打开的新形式。如果用户要在主窗体中输入一些新信息,则按“go”,另一个窗体应弹出新输入数据的图形,依此类推。因此,可以同时打开具有不同图形的多个表单。

我不确定如何修改我的应用程序来实现这一目标。我创建了一个新的表单类,并添加了一个图形控件和所有其他控件和设计我想要这些新的图形表单,但是当我试图从原始主表单绘制数据时,我不知道我怎么能访问新的图形表格的图形控制值...我将修改器设置为公共,但我似乎无法让它工作。

有没有办法更简单地将数据从一个表单绘制到我创建的图表形式的新对象中?

1 个答案:

答案 0 :(得分:2)

创建一个新表单作为您的图表表单。然后向该表单添加表示数据的属性。您甚至可以将该数据传递到表单的构造函数中。例如,如果我有一个图表标题和我的图表数据的整数列表,我的表单可能如下所示:

public partial class GraphForm : Form
{

    public string GraphTitle { get; set; }
    public List<int> GraphData { get; set; } 

    public GraphForm(string graphTitle, List<int> graphData )
    {
        InitializeComponent();

        GraphTitle = graphTitle;
        GraphData = graphData;
    }

    private void GraphForm_Load(object sender, EventArgs e)
    {
        // Do the plotting here.
    }
}

现在,当用户点击Go按钮时,您可以创建新表单并传入当时所需的数据:

private void goButton_Click(object sender, EventArgs e)
{
    GraphForm form = new GraphForm("Title", new List<int>() {1,2,3} );
    form.Show();
}