DOBON.NET DOBON.NETプログラミング掲示板過去ログ

プロジェクト間のデータの受け渡しについて教えてください

  • 題名: プロジェクト間のデータの受け渡しについて教えてください
  • 著者: CB
  • 日時: 2004/04/02 12:19:24
  • ID: 3454
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[言語:[Visual Basic .NET; .NET Framework 1.1; Windows XP Home SP1]]
分類:[.NET]

長文ですが、真剣に悩んでおります。アドバイス宜しくお願い致します。

複数起動しているプロジェクト間のデータの受け渡し処理を行っております。
データを受け渡す処理はできるのですがその際の処理で、
フォームが複数生成されてしまい悩んでおります。
フォームが複数生成されないやり方を教えて頂けないでしょうか。

以下の、
ソリューション: AAA.sln
プロジェクト: AAA.vbproj(出力:アプリケーション(exe))
フォーム: CCC.vb (Windowsフォーム)
ソース: CCC.vb

Imports BBB(BBB.dllを参照設定済み)
 :
Dim tmpFrm As New BBB.DDD
tmpFrm.EEE = textbox1.text
tmpFrm.Show

フォームCCC.vb上の
コントロール: textbox1
の、textbox1.textの値を

変数: EEE(string型)
に代入して、以下の

ソリューション: AAA.sln
プロジェクト: BBB.vbproj(出力:クラスライブラリ(dll))
フォーム: DDD.vb (Windowsフォーム)
ソース: DDD.vb

Private FFF As String

Public Property EEE() As String
Get
Return FFF
End Get
Set(ByVal value As String)
FFF = value
End Set
End Property
  :
  :
Private Sub DDD_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated

TextBox1.Text = FFF

End Sub

フォームDDD.vb上の
コントロール: textbox2
の、textbox2.textに代入する処理を行っております。

実際のところ、フォーム: CCCからフォームDDDがshowされてtextbox2に値が入るのですが、
前提条件として、

フォーム: DDD.vb が立ち上がっており、そこからプロジェクト: AAA.exeを起動している。

ので、プロジェクト: AAA(CCC.vb)からDDDのインスタンスを
作成してshowすると、フォーム: DDDがもう1枚作成されてしまいます。
そうならない為に、

@インスタンスを作成してshowせずに、すでに立ち上がっているDDDに値を代入したい。
Aインスタンスを作成してshowしたあと、すでに立ち上がっているDDDを消したい。

をいろいろ試していたのですがうまくいきません。
希望としては、@の、
既に起動表示されているフォームDDDに値を代入したいと思っております。
(あと、できればプロジェクト: BBB.vbprojはexe出力設定しておきたいです。)
私の試みは、受け渡し用変数EEEを新たにプロジェクトを作成してそこでクラス化して、
受け渡すほうとされるほうで参照して使えないかと思っております。
以下が新たに作成したクラスです。

プロジェクト: GGG.vbproj(出力:クラスライブラリ(dll))
クラス: HHH.vb
ソースは以下の通りです。

Public Class HHH

Private FFF As String

Public Property EEE() As String
Get
Return FFF
End Get
Set(ByVal Value As String)
FFF = Value
End Set
End Property

End Class

実際のところ、受け渡す側のフォーム: CCCからはEEEに値は入れれるのですが、
今度は受け渡される側の処理がうまくいきません。
タイミングとして、フォーム: DDD.vbに

Private Sub DDD_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Activated

TextBox1.Text = FFF

End Sub

を設定してActivatedになるようにいろいろ試しているのですがうまくいきません。

長文となってしまいましたが、以上のように、複数起動しているプロジェクト(exe)間のデータの
受け渡しを行いたいです。何卒アドバイスを頂きたいです。
宜しくお願い致します。

DOBON.NET | プログラミング道 | プログラミング掲示板