- PR -

DLL から値を受け取りたい

1
投稿者投稿内容
うむむ
会議室デビュー日: 2004/03/25
投稿数: 12
投稿日時: 2004-04-01 12:48
C# Windows Forms です。

クラスライブラリとして出力したフォーム dllForm.dll があります。
これを、mainForm.exe から呼び出して使いたいと思います。
どちらも C# で作成しています。

dllForm には TextBox が複数と、CommandButton が 1つあります。
その CommandButton をクリックした時に、TextBox に入力されている
内容を呼び出し元の mainForm へ返したい、という事がやりたいのですが、
つまってしまいました。

呼び出し元の mainForm では

dllForm.Form f = new dllForm.Form(ref string a, ref string b, ref string c);
f.ShowDialog();

呼ばれる側の dllForm では

private string a;
private string b;
private string c;

public Form(ref string a, ref string b, ref string c)
{
this.a = a;
this.b = b;
this.c = C;
}


private void btn_Click(object sender, System.EventArgs e)
{
this.a = this.textA.Text;
this.b = this.textB.Text;
this.c = this.textB.Text;

this.Close();
}

のように苦肉の策でやってみたりもしたのですが、値がかえりませんでした。

dll から複数の値を返すにはどのような方法で行なえばよいのでしょうか?
よろしくお願いします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-04-01 13:24
うむむさん、こんにちは。

プロパティで公開すれば良いと思います。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-04-01 13:25
モーダルダイアログなら単純に

呼ばれる側の dllForm

コード:
public string a; 
public string b; 
public string c; 

private void btn_Click(object sender, System.EventArgs e) 
{ 
	this.a = this.textA.Text; 
	this.b = this.textB.Text; 
	this.c = this.textB.Text; 

	this.Close(); 
}



呼び出し元の mainForm
コード:
dllForm.Form f = new dllForm.Form(ref string a, ref string b, ref string c); 
f.ShowDialog(); 

string a = f.a;
string b = f.b;
string c = f.c;


うむむ
会議室デビュー日: 2004/03/25
投稿数: 12
投稿日時: 2004-04-01 14:09
ありがとうございます.

this.Close(); してもフォームにはアクセスできるんですね。
プロパティで目的の事ができました。

using (dllForm.Form f = new dllForm.Form())
{
f.ShowDialog();
Console.WriteLine(f.a.ToString());
}

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)