C#自定义事件不起作用

时间:2016-06-16 01:59:09

标签: c# events

    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);
    }

这是我的活动代码。当我的套接字客户端收到消息(数据)时,我调用事件。但事件没有奏效..

    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 个答案:

答案 0 :(得分:1)

我无法看到你举起活动的任何地方。尝试将OnMessageReceiveEvent方法公开,然后从Form1构造函数中调用它。

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