- PR -

異なるプロジェクト内のフォームに値を渡すには

1
投稿者投稿内容
chara
常連さん
会議室デビュー日: 2004/03/09
投稿数: 25
投稿日時: 2004-04-14 01:30
1つのソリューション内に
aプロジェクト(a.dll)とbプロジェクト(b.dll)があります。

aのフォームから、bのフォームに値を渡すには
どのようにすればよいのでしょうか?

また、bからaのフォーム名を取得できるのでしょうか?

基本的な事柄かもしれませんが、
よろしくお願いいたします。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-04-14 01:39
引用:

だるまさんの書き込み (2004-04-14 01:30) より:
1つのソリューション内に
aプロジェクト(a.dll)とbプロジェクト(b.dll)があります。

aのフォームから、bのフォームに値を渡すには
どのようにすればよいのでしょうか?

また、bからaのフォーム名を取得できるのでしょうか?


同じプロジェクト内でやるのは問題ないってことですか?(もっと根本的なところで分からないわけではないんですよねという意味)

基本的にプロジェクトが変わっても本質的には何も変わらないはずだと思うんですが。
「値の渡し方」がわからないって言う事は、別のプロジェクトのフォームを表示したりってことは出来てるんですよね(=名前空間が違ってインスタンスをNewできないとか、参照をしてなくて使えないとかじゃないですよね)?

あとは、例えば値のやり取りとかでプロパティを使おうとしていて、それがinternal(VBだとFriendだっけか)になっててアクセスできないとか?

具体的にどういう方法でやろうとして、どこで詰まってるんでしょうか?

> bからaのフォーム名を取得できるのでしょうか?
フォーム名を取得できるっていうのは具体的にどういう意味でしょう?

何となく、「別プロジェクト」かどうかとは関係ない話のような気がしてきました…
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-04-14 02:15
引用:

だるまさんの書き込み (2004-04-14 01:30) より:
1つのソリューション内に
aプロジェクト(a.dll)とbプロジェクト(b.dll)があります。

aのフォームから、bのフォームに値を渡すには
どのようにすればよいのでしょうか?

また、bからaのフォーム名を取得できるのでしょうか?

基本的な事柄かもしれませんが、
よろしくお願いいたします。


異なるアセンブリのやりとりですね?
その前に.NETの話ですか?
.NETのなら、複雑なことは考える必要ありません。
コンパイラに物理ファイルのあり場所を教えてやればOKです。
あとは、
名前空間.クラス名 変数 = new 名前空間.クラス名()
のように「普通」につかえます。
VS.NETなら、参照設定。コマンドラインなら /r です。
同じソリューションなら、ファイルの場所はコンパイラが既にしっているので
何もしなくてもできるはずですが。。。
もし、フォーム間のやりとりが分からなければ。。。。
もっと具体的にいってください。
_________________
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-14 08:33
 VB.NETだと、プロジェクトごとに別の名前空間がつけられるので、アクセスできないでいるとか?

 ただ、A.dllとB.dllということなので、循環参照しないようにだけ、気をつけなければなりません。
chara
常連さん
会議室デビュー日: 2004/03/09
投稿数: 25
投稿日時: 2004-04-14 18:39
お世話になります。

他プロジェクトのフォームの表示することは、
できています。

呼び出し側フォームから、
他プロジェクトのフォームにファイル名を渡して、
呼び出された側のフォームで
そのファイル名を使って表示したいのです。

下記にソースを記載しますので、
よろしくお願いいたします。

'呼び出し元のフォーム---------------------------------------------
'プロジェクト名=test
Public Class frmA
  'ファイルのパス
Public Const strFileNm As String = "C:\test_help.html"

  Private Sub Button4_Click(ByVal sender As Object, ByVal e As                 System.EventArgs) Handles Button4.Click
Dim frmHelp As New CommonLibrary.frmB
frmHelp.Show()
frmHelp = Nothing
End Sub
End Class
'-------------------------------------------------


'呼び出すフォーム----------------------------------
'プロジェクト名=CommonLibrary
Public Class frmB
Inherits System.Windows.Forms.Form
Public strFileNm As String
  
  Private Sub frmB_Load(ByVal sender As Object, ByVal e As                        System.EventArgs) Handles MyBase.Load
  With AxWebBrowser1
  .Navigate(strFileNm) '指定されたファイルを表示
      '***このstrFileNmに呼び出し元から渡された値を入れたい***
  End With
  End Sub
End Class
'-----------------------------------------------------------
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-04-14 18:59
frmBにSetFileName(string)のようなメソッドを作って、それを呼んでからShow()するというのはどうでしょう。
chara
常連さん
会議室デビュー日: 2004/03/09
投稿数: 25
投稿日時: 2004-04-14 19:41
一郎様の方法で、できました!
ありがとうございました!!

ところで、呼び出されたフォームから
呼び出したフォームのフォームID
(例えば、「frmTest.vb」なら「frmTest」)を
取得することは可能でしょうか。
1

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