1

我有一个主窗体和一个用户控件(带图表)。我正在动态更新图表。

 void foo(int i)
        {

            MainForm MF = (MainForm)MainForm.ActiveForm;
            if (tb != null)
            {
                tb.userGraph.updatesomething(i);
               // usergraph is the user control which has graphs
            }

        }

问题是当我导航出主窗体时,我无法更新图表。有没有其他方法可以写入用户控件,即使它不是活动表单?如果我创建一个新实例,图表上的先前更新将消失。

4

2 回答 2

1

我认为最简单的解决方案是在表单和用户控件之间传递用户控件的引用。例如在用户控件中创建一个字段;

public Form formExample{get;set;}

并且当您最初实例化用户控件时,将引用作为参数传递;

userControl usercontrol = new userControl();
usercontrol.formExample = this;
//passing this from the original form will pass a reference of it.

这样,您现在可以从用户控件访问窗体上的图形。如果您想以相反的方式进行操作,即从表单访问用户控件上的图形,只需以相反的方式传递引用。我自由输入了这个,但我认为语法就在那里!

于 2012-12-05T11:07:12.403 回答
1

我通过使用Application.OpenForms["Name of the Form"]方法解决了它。

于 2012-12-06T07:52:31.273 回答