前提・実現したいこと
■ 前提条件 ■
1つのソリューションで複数のWindowsフォームアプリケーションを作っています。
具体的には、2つの機能が違うフォームアプリケーションを作ります。
その為、ソリューションの中に、複数プロジェクトを作り、各プロジェクトごとでフォームを管理しようと考えています。(この構造が客先希望の為)
また、フォームを作るのは、1つのフォームに対して1人です。
それぞれのフォームから共通で使うものは、共通プロジェクトとして作り、共通で使えるフォーム・クラスを作る方向で進めています。
今回は、自分が共通クラスを作る役回りになりました。
マージ時の不具合を防ぐため、出来るだけ共通クラスは共通で使えるようにしたいと考えています。
■ 実現したい事 ■
共通クラスを使用する際に、クラス内で処理を行い、各フォームへデータを渡したいと考えています。
各フォームのインスタンスを取得し、値を渡す...ということを考えましたが、そうすると、各フォーム毎に入り口を作る必要があるので、そこをスマートに出来ないかと、皆様にお知恵を借りたいと考え、投稿しました。
よろしくお願いいたします。
該当のソースコード
フォームからインスタンスを取得する部分
VBNET
1 'フォームとの連携用 2 Private _conectForm As System.Windows.Forms.Form 3 ''' <summary> 4 ''' フォームとの連携用 5 ''' </summary> 6 ''' <returns></returns> 7 Public Property FrmInstance() As FrmMain1 8 Get 9 Return _conectForm 10 End Get 11 Set(value As FrmMain1) 12 _conectForm = value 13 End Set 14 End Property 15 16 ''' <summary> 17 ''' フォームとの連携設定 18 ''' </summary> 19 ''' <param name="form"></param> 20 Public Sub setForm(ByVal form As FrmMain1) 21 FrmInstance = form 22 End Sub
下記のように共通クラスからリストボックスにデータを渡したい。
VBNET
1 ''' <summary> 2 ''' 伝達監視 3 ''' </summary> 4 ''' <param name="token"></param> 5 Private Sub LinkLoop(ByVal token As CancellationToken) 6 If System.IO.Directory.Exists(FolderName1) Then 7 'ファイル確認作業(SearchFile: フォルダからファイルを検索して列挙) 8 Dim sarchMae As IEnumerable(Of String) = SearchFile(FolderName1) 9 If sarchMae IsNot Nothing Then 10 'リストボックスへ反映 11 FrmInstance.AddListBoxSelect(sarchMae) 12 End If 13 End If 14 End Sub
補足情報(FW/ツールのバージョンなど)
OS:Windows10
開発環境:VisualStudio2017 / .NET Framework4.0
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/10 01:09