質問: MDI親フォーム"Form1"と子フォーム"Form2"があります。 Form1からForm2のメソッドを呼び出したいです。 例えば、 Form2には不特定多数のTextBoxがあります。 それぞれ名前が1~数字で決まっています。 Form1にはボタンとTextBoxがあります。 TextBoxに数字を入れボタンを押すと、その番号にあった子フォームのTextBoxに何らかのテキストが入れられます。 番号はpublicな変数を経由して伝えるとしても、子フォームにある、番号を使って対象のTextBoxに値を入れるメソッドをボタンを押した後に動かす方法がわかりません。 子フォーム親フォームが逆なら、簡単なんですけどね... 助けてください。
回答: こんな感じでどうでしょうか? ``` // // form1呼び出し側 // Form2 frm = new Form2(); frm.Show(); frm.OutputText(1, "text1"); frm.OutputText(2, "text2"); frm.OutputText(3, "text3"); frm.OutputText(4, "text4"); // // 以下form2へ追加 // public void OutputText(int index, string value) { // 名前からTextBoxを検索 Control[] controls = this.Controls.Find($"textBox{index}", false); if (controls.Length > 0) { // TextBox.Textへ文字設定 (controls[0] as TextBox).Text = value; } } ```