tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル VB2005、クラス、フォーム間の連携について
投稿日: 2008/07/08(Tue) 23:13
投稿者時徒
表題からわかりにくいかもしれませんが下記のことが出来るかが知りたいです。
今、クラスモジュールで各フォームで共通の処理を作成しようとしています。
クラスにて共通の処理を行った後、フォームで指定した変数に値を代入して欲しいのです。
例えば、
フォームにLogを表示するテキストボックスがある。
フォームモジュールではLogの内容をテキストに出力するクラスを実行します。
そして実行されたクラスではテキストに出力が終わるとLogの内容をフォームのテキストボックスにも表示させます。
このような処理が行えるクラスを作成したいです。
しかし、クラスでフォームを指定してしまうといろいろなフォームで使えないため
クラスをセットした後にこのフォームではTxtLogという名前のテキストボックスに結果を表示してください(フォームが違うと名前も変えたい)。
とか、このフォームではテキストボックスへの出力はいらないよとかそういう宣言をしたいのですが可能ですか?
現在は以下の方法でしのいでます。
フォーム
 Dim Log As New Class
 Log.LogWrite("Log内容",Me.TxtBox.Text)
クラス
Public Sub LogWrite(ByVal Naiyou As String,ByRef TxtBox_C As String)
  Using TxtWrite As New System.IO.StreamWriter("c:\Log.txt")
      TxtWrite.WriteLine(Naiyou)
    End Using
  TxtBox_C = Naiyou & vbCrLf & TxtBox_C
End Sub
この方法だと、何度もMe.TxtBox.Textを宣言しなくてはいけません。また、Me.TxtBox.Textへの更新をフォームでやるとLogWriteの後に毎回同じ代入式を書かなければならなくなります。
一度どこかで、Me.TxtBox.Textに結果を入れてくれというのを、クラスに対してフォームで宣言できたらMe.TxtBox.Textは一度書けば良いし、引数も1つでよくなります。
そのような方法は無いでしょうか?
どうかよろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。