タイトル | : VB2005、クラス、フォーム間の連携について |
記事No | : 7787 |
投稿日 | : 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つでよくなります。 そのような方法は無いでしょうか? どうかよろしくお願いします。
|