※会社では VB しか使用してませんが、VisualStudio .NET ということならば、まぁ、大体、エッセンスは流用できるだろう、ということで、サジェスチョンの提示です。
App1クラス(=プロジェクト名)の配下に、Form1クラス、Form2クラス、それらを呼び出すMainMenuクラスがある…ということですかね。
オブジェクト指向の考え方では、クラスを越えてアクセスさせるには、Property ってのを経由させる、ってことになってます。
ですので、
Public Property なんとかかんとか() As DataTable
Get
Return Private指定したDataTable変数
End Get
Set (Value As DataTable)
Private指定したDataTable変数 = Value
End Set
End Property
ってな感じで、プロパティを作れば、Form1クラス、Form2クラス相互からアクセスできますね。
※各Formクラスからは、App1.Form1.なんとかかんとか() ってのでアクセスする、として。
1つの DataSet 内に、複数の DataTable を入れるというのは、可能と思います。
※なにせ、DataSet.Tables(0) ってのでアクセスできますから
…ただ、個人的にも会社でも、DataSetは、あまり使いませんね。
殆ど、DataTableでどうにもなりますから。
CrystalReportに対して印刷しろ、ってな時くらいかな? DataSetを利用するのは。
ですので、後々の事も考えると…ウィザードを使うのではなく、手打ちで書いてく事をオススメしたいと思います。
お礼
stein_JPさん、ご回答ありがとうございました。 まず始めに考えたのが、Form1およびForm2でテーブルを返すメソッドを作成する。 しかし、そのようにすると、テーブルのコピーがメソッドを呼び出した方にも作成されてしまう。 ここで思考がとどまっていました。 プロパティを作れば、コピーされるわけではなく直接アクセスとなるということですね。納得しました。 C#では実際仕事をしたことがないのですが、今後ウィザードを使わなくてもできるようにしていきたいと思います。 ありがとうございました。