2016-06-16 11 views
1
public delegate void MessageReceiveEventHandler(MessageReceiveEventArgs e); 
    public event MessageReceiveEventHandler MessageReceiveEvent; 
    public class MessageReceiveEventArgs : EventArgs 
    { 
     public string Message { get; } 

     public MessageReceiveEventArgs(string Message) 
     { 
      this.Message = Message; 
     } 
    } 
    private void OnMessageReceiveEvent(string Message) 
    { 
     if (MessageReceiveEvent == null) return; 

     MessageReceiveEventArgs MessageREvent = new MessageReceiveEventArgs(Message); 
     MessageReceiveEvent(MessageREvent); 
    } 

これは私のイベントコードです。ソケットクライアントがメッセージ(データ)を受け取ったときにイベントを呼び出します。イベントは機能しません。C#カスタムイベントが機能しない

ClientSocket cs; 
    public Form1() 
    { 
     InitializeComponent(); 
     cs = new ClientSocket(); 
     cs.MessageReceiveEvent += Cs_MessageReceiveEvent1; 
    } 

    private void Cs_MessageReceiveEvent1(ClientSocket.MessageReceiveEventArgs e) 
    { 
     listBox1.Items.Add(e.Message); 
    } 

私はこれを試しました。

答えて

1

イベントを起こしている場所はどこにも表示されません。 OnMessageReceiveEventメソッドをpublicにして、Form1コンストラクターから呼び出します。

public Form1() 
{ 
    InitializeComponent(); 
    cs = new ClientSocket(); 
    cs.MessageReceiveEvent += Cs_MessageReceiveEvent1; 
    cs.OnMessageReceiveEvent("Testing Event"); 
} 
+0

これはまだ動作していません。私のソケットのasyncReceiveメソッドを呼び出すイベントです。 – Remake

+0

そしてそれは奇妙にコンソールプログラムで働いた – Remake

+0

あなたが行って、あなたがそれを働かせることができない場合、別のコメントを投稿する方法を見てください – RobCroll

関連する問題