Windows Form ApplicationでForm1のボタンをクリックでForm2をshowさせ、そのForm2にあるテキストボックスにForm3からアクセスしたいのですがどのようにすればいいのでしょうか。
C#
1namespace WindowsFormsApp1 2{ 3 public partial class Form1 : Form 4 { 5 public Form2 frm2app; 6 public Form1() 7 { 8 InitializeComponent(); 9 10 } 11 private void button1_Click(object sender, EventArgs e) 12 { 13 frm2app = new Form2(); 14 frm2app.Show(); 15 } 16 } 17} 18 19namespace WindowsFormsApp1 20{ 21 public partial class Form2 : Form 22 { 23 public Form3 frm3app; 24 public Form2() 25 { 26 InitializeComponent(); 27 } 28 29 private void Form2_Load(object sender, EventArgs e) 30 { 31 frm3app = new Form3(); 32 frm3app.Show(); 33 } 34 } 35} 36 37namespace WindowsFormsApp1 38{ 39 public partial class Form3 : Form 40 { 41 public Form3() 42 { 43 InitializeComponent(); 44 } 45 46 private void button1_Click(object sender, EventArgs e) 47 { 48 frm2app.textBox1.Text = "1234"; //ここでテキストボックスを操作したい 49 } 50 } 51}
このような場合に推奨されるモダンな手法は DI です。
Microsoft 製の軽量なものが NuGet で公開されています。
https://docs.microsoft.com/en-us/windows/communitytoolkit/mvvm/ioc
後から見る人のために紹介するにとどめ、回答も解説もしません。
質問者さん、無言ですが、回答がいくつかついているのでそれらに対するフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。とにかく無言は NG です。