フォーム間のデータ受け渡し2
Visual Studio 2005のフォームアプリケーションでプログラミングを行っているものです。前回と似たような質問になるのですが、微妙に状況が違っていてどうしてよいのかわかりません。まず、メインフォーム(Form1.h)でサブフォーム(pic0.h)を呼び出しているのですが、プログラムを見てお分かりのように起動時に呼び出ししているので最初に子フォームのpic0.hが現れます。この子フォームを消すことでメインフォームが現れるといった感じになっています。私がしたいことは、まずメインフォームの上でサブフォームを表示させ(メインフォームが表示された後にサブフォームが表示されてほしい)、さらにpic0.hでテキストボックスによる入力や出力で取得されたint型やdouble型のデータをForm1.hに引き渡すことです。以下がプログラムなのですが、どのようにプログラムしていいのかお分かりの方がいましたら御教授お願いします。
/*** メインフォーム(Form1.h) ***/
#pragma once
#include "pic2.h"
#include "pic0.h"
// 省略 //
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
pic0 ^p0 = gcnew pic0(); //起動時呼び出し
p0->ShowDialog(this);
}
/*** サブフォーム(pic0.h) ***/
#pragma once
// 省略 //
#pragma endregion
praivate int a,double b;
a = double::Parse(textBox1->Text); //例1
b = double::Parse(textBox2->Text); //例2
// 省略 //
/*** pic0.cpp ***/
#include "StdAfx.h"
#include "pic0.h"
#include "Form1.h"
using namespace pic;
お礼
難しく考えすぎていたようですね 1対1の場合 Form1に f = New FormItem(Me) f.Show() Public Property ItemNoTextBox() As String Get 'ItemNo.Text の内容を取得 Return ItemNo.Text End Get 'ItemNo.Text に書き込み Set(ByVal Value As String) ItemNo.Text = Value End Set End Property formItemに Private frm1 As New Form1 Public Sub New(ByVal f1 As Form1) InitializeComponent() frm1 = f1 End Sub としていて、複数に増やせなく悩んでいました 確かに FormItem側で Public SelectedItemNo Public SelectedItemName 等必要分宣言をして、選択完了時にデ-タを格納し 呼び出し側で受け取れば受け取れますね ありがとうございました