Ivb2005を勉強中の初心者です。
送受信プログラムの前段階として、別クラス、別スレッドからリストボックスへメッセージを追加するプログラムを
作成中です。
formクラスからの別スレッドからのリストボックスへのメッセージ追加はうまくいくのですが、
別クラスからリストボックスへのメッセージ追加がどうしてもうまくいきません。
(別クラスから、メッセージ追加処理の呼び出し方がよくわかりません。)
前回も同じ質問をして、親切にサンプルまで提供していただいたものを基にして作成しなおしたのですが、
うまくいきません。
どうかご教授下さい。 お願いします。
mports System.Threading
Public Class Form1
Private newcls1 As class1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
newcls1 = New class1
newcls1.setitem(Me.ListBox1)
newcls1.threadproc("form1")
'別スレッドで開始する
Dim myThread As Thread
myThread = New Thread(New ThreadStart(AddressOf session1))
myThread.IsBackground = True
myThread.Start()
Control.CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub session1()
newcls1.threadproc("受信")
Dim newcls2 As New cls2
newcls2.cls2main()
End Sub
Private Delegate Sub delsession1(ByVal mes As String)
Private Sub pri_print(ByVal mes As String)
newcls1.threadproc(mes)
End Sub
'クラス1
Public Class class1
Private _logbox As ListBox
Public Sub threadproc(ByVal mes As String)
Dim dlg As New dlglogboxvalue(AddressOf setlistitem)
If _logbox.InvokeRequired Then
_logbox.Invoke(dlg, New Object() {mes})
Else
setlistitem(mes)
End If
End Sub
Private Delegate Sub dlglogboxvalue(ByVal value As String)
Private Sub setlistitem(ByVal value As String)
_logbox.Items.Add(value)
_logbox.TopIndex = _logbox.Items.Count - 1
_logbox.Refresh()
End Sub
Public Sub setitem(ByVal targetlogbox As ListBox)
_logbox = targetlogbox
End Sub
End Class
'クラス2
Public Class cls2
Public Sub cls2main()
'”送信”とリストボックスに出力したい”
'どうやってもうまくいかない”
End Sub
End Class
End Class