私はこれを理解することに非常に熱心に取り組んでおり、イベントを理解できません。誰かが私のコードでイベントプロセスを理解するのを助けることができますか?または、コードを実行しても画像が切り替わらない理由を教えてください。私の接続サブイベントが画像を変更しないのはなぜですか?
'Construct InstanceContext to handle messages on callback interface.
' An instance of ChatApp is created and passed to the InstanceContext.
instanceContext = New InstanceContext(Me)
' Create the participant with the given endpoint configuration
' Each participant opens a duplex channel to the mesh
' participant is an instance of the chat application that has opened a channel to the mesh
factory = New DuplexChannelFactory(Of IChatChannel)(instanceContext, "ChatEndpoint")
participant = factory.CreateChannel()
' Retrieve the PeerNode associated with the participant and register for online/offline events
' PeerNode represents a node in the mesh. Mesh is the named collection of connected nodes.
ostat = participant.GetProperty(Of IOnlineStatus)()
AddHandler ostat.Online, AddressOf Me.OnOnline
AddHandler ostat.Offline, AddressOf Me.OnOffline
instanceShellPropは、そのシェルのインスタンスを返します
Public Sub Join(ByVal member As String) Implements IChat.Join
instanceShellProp.imgP2P.Image = Namespace.My.Resources.Offline
MsgBox("JOINED OFFLINE")
End Sub
Public Sub Leave1(ByVal member As String) Implements IChat.Leave
instanceShellProp.imgP2P.Image = Namespace.My.Resources.Disconnected
MsgBox("NOT CONNECTED")
End Sub
Public Sub OnOnline(ByVal sender As Object, ByVal e As EventArgs)
instanceShellProp.imgP2P.Image = Namespace.My.Resources.Online
MsgBox("JOINED ONLINE")
End Sub
Public Sub OnOffline(ByVal sender As Object, ByVal e As EventArgs)
instanceShellProp.imgP2P.Image = Namespace.My.Resources.Offline
MsgBox("JOINED OFFLINE")
End Sub
画像を変更することになっている
サブ・ルーチン内
クラスの宣言とメンバー
Partial Public Class Name
Implements IChat
Private member As String
Private instanceContext As InstanceContext
Private participant As IChatChannel
Private ostat As IOnlineStatus
Private factory As DuplexChannelFactory(Of IChatChannel)
MDIコンテナです。
すべての画像はリソースにあり、綴りが付けられ、参照されています。 MessageBoxはポップアップしますが、結合を除いてイメージは変更されません。
私はコードダンプを試みていません。私が見ていることを確認して、より良いアドバイスをすることができるようにしようとしています。
すべてのご協力ありがとうございます。
EDIT
さて、私は私が近づいていますように感じる...これは奇妙見つけます。メッセージボックスがコメントアウトされていない場合、画像は変更され、コメントアウトされると画像は変更されません。 これを動作させる方法に関するより良い提案はありますか?
Public Sub OnOnline(ByVal sender As Object, ByVal e As EventArgs)
With instanceShellProp.imgP2P
.Image = Nothing
.Visible = True
End With
'MsgBox("JOINED ONLINE")
With instanceShellProp.imgP2P
.Image = Namespace.My.Resources.Online
.Visible = True
End With
End Sub
これは実際に何が行われていたかから実際に変更されたかどうかはわかりません。しかし、あなたが素晴らしいものになるスレッドの特定のイベントを処理する方法の一般的な方向に私を指すことができれば。 (私はイベントでは新しく、スレッディングには触れていません)。別のコンピュータが接続したときにイベントが実行されているとは限りません(ステータスをオンラインにする) –