- 題名: フォーム間で変数を共有するには?
- 日時: 2003/09/27 12:34:55
- ID: 743
- この記事の返信元:
- (なし)
- この記事への返信:
- [746] Re[1]: フォーム間で変数を共有するには?2003/09/27 13:22:14
- ツリーを表示
こんばんは、Ken-Koさん。ピラルクです。 > Form2 のほうで Form5 の変数を取ってくることと、 > Form5 から渡す方法があるようですが...。 これは、Object指向プログラミングにおけるクラスの 依存関係の問題です。再利用の可能性などを考慮して 渡し方を考えるのが理想的ですが、そういう責任を負 っていないのであれば、まぁ無理に難しく考える必要 もないと思います。 いつ接続情報が確定するのかという点が不明なので、 Form2は接続の情報を必要とした時に、はじめてForm5 へ(最新の)値をとりに行くという条件ならば、 '既にForm5でstrConnection,strSourceがPublicなので。 Private Sub Form2SomeProc() Dim strLocalConnection As String = frmForm5.strConnection Dim strLocalSource As String = frmForm5.strSource …… で取得できます。問題はfrmForm5をどう渡すかですが、 Form2のClassに、 Public frmForm5 As Form5 を追加して、Form2をNewしてShow()している所で、 Dim frmForm2 As New Form2 '↓追加 frmForm2.frmForm5 = Me frmForm2.Show() とすれば、とりあえずは(*1)渡せるはず。 *1:「とりあえず」というのは、依存関係や隠蔽の観点 からして色々と宜しくないので。可読性も悪い。 で、VB6以前のbasモジュールでグローバル変数を用いて いたようにもっとEasyにできないかということでしたら、 basモジュールに相当するClassを1つ作るという手もあ ります。 Public Class SystemGlobalInfo Public Shared gstrConnection As String Public Shared strSource As String End Class SharedでClass変数にすることにより、Classからアクセス するので、「どこかで渡す」必要がないところがEasy。 Form5がこれに設定し、 SystemGlobalInfo.gstrConnection = "xxxxxxx" Form2がSystemGlobalInfo.gstrConnectionから読み出す。 ※Propertyを使う方が本当はいいけど。
お世話になります。
あるフォームで値を決定した変数を別のフォームで使う方法がわかりません。
よねKENさんの705のコメントも読ませていただき、いろいろやってみましたが、
やはり分かりません。
手元のテキストには、 Application("名称") = 値
としておいて、別のウェブフォームでその"名称" から呼び出すというような
ことが紹介されていたのですが...。
用語が正確でなくて申し訳ないのですが、私がやりたいのは、ウェブではなく、普通のフレーム同士の話です。
基本的な形が分かるようなサンプルでも見せていただけないでしょうか?