囚人さんのブログで、旧 Visual Basic は何をもたらしたのか
http://blogs.wankuma.com/shuujin/archive/2006/06/22/31137.aspx
という話題があり、その中に、「Form1 から Form2 へどうやれば値を渡せるか?」という質問が頻繁に繰り返されるということが書いてあった。
確かにそうであり、同じ回答を何度も書くのもなんだかなぁと思うので、私の私見的回答を代表してここに書いておきますので、検索してここに辿り着いた人は参考にして下さい。
本題です。
「Form1 から Form2 へどうやれば値を渡せるか?」ですが、この質問が出る背景には、オブジェクト指向をよく理解しないままにVB.NETを始めたか、オブジェクト指向はある程度理解しているが、Formをクラスだと認識していないところから来ていると思います。Fromクラスなんていうふうに、わざとクラスという文字を明記した方がかえってわかりやすいのかもしれません。
VB6の時のフォームはフォームというVB6独特のものですが、VB.NETのフォームはクラスだという違いを、はっきりと認識できていないんだと思います。どちらもフォームという名前ですから、無理もないかもしれません。フォームがクラスということが認識できれば、あとは、クラス間でどうやって値を受け渡すのかを調べれば良いのです。
上の文章ではVB.NETという言葉を使いましたが、もちろん、C#などでも同様です。