0

MenuStrip を含む MDI 親があります。メニューの 1 つをクリックすると、2 つの子フォームが同時に表示されます。

ChildForm の 1 つにTextBoxSend Buttonがあります。その TextBox に何かを入力してSend Buttonをクリックすると、2 番目の子フォームの TextBox にその値を表示する必要があります。

私がやったことは、Second Child Form に Public Function を書き、Send Button クリック イベントで Second Form のオブジェクトを作成して呼び出そうとしたことです。そのパブリック関数にブレークポイントを配置すると、[送信] ボタンをクリックすると、コントロールがそのパブリック関数を通過していることがわかります。しかし、渡された値は表示されません。そして、それが標準的な方法ではないことを私は知っています。

ヘルプ用のサンプル スクリプトはありますか? ありがとう。

4

2 に答える 2

0

私はあなたの質問を誤解しているかもしれませんが、送信ボタンの Click イベントで、新しいインスタンスを作成してSecondFormその関数を呼び出しているようです。ここでフォームの新しいインスタンスを作成している場合、それは MDI 親フォームに既に存在するフォームの同じインスタンスではありません (これが、何も起こっていないように見える理由です)。

必要なことは、既に MDI 親フォームにある のインスタンスへの参照を取得し、そのパブリック メソッドSecondFormを呼び出すことです。次のように、親フォームのコレクションを介して 2 番目のフォームへの参照を取得できます。MdiChildren

SecondForm f2 = (SecondForm)this.MdiChildren[1]; // second form in collection
f2.PublicMethod();
于 2010-03-14T07:27:31.673 に答える
0

返信いただきありがとうございます。

私はあなたのコードを試しましたが、エラーを出していました:インデックスは配列の範囲外でした.

次のように、コードを少し変更して、機能させるようにしました。

SecondForm f2= (SecondForm)this.MdiParent.MdiChildren[1];
        f2.PublicMethod(some_value_to_pass);

助けてくれてありがとう。:-)

于 2010-03-14T08:44:45.843 に答える