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 に答える