C#绑定事件到方法后,触发事件显示为空,这是什么原因啊,求高手指导

解决方案 »

  1.   

    主程序中绑定代码如下:
    ServerSocket addIP = new ServerSocket("", "");
    addIP.MessageArrived += new ServerSocket.DelegateSendmassage(addonline);类中定义事件代码如下: 
    public delegate void DelegateSendmassage(string messageText);
    public event DelegateSendmassage MessageArrived;
    哪位高手帮我看看怎么回事啊~
      

  2.   

    绑定到 addonline,这个东西在哪,你到底出现什么问题
      

  3.   

    是啊,你有addonline这个处理过程吗?
      

  4.   

    addonline代码怎么写的?还是根本没写?
      

  5.   

    有啊 public void addonline(string message)
            {
                AddOnline(message);     
            }就是触发事件时,显示MessageArrived为null,什么都没执行
      

  6.   

    估计是你在ServerSocket 中没有触发事件,
    你在要触发事件的地方加一句
    if(MessageArrived!=null)
    {
    MessageArrived("xxx");
    }
      

  7.   

    就是这样触发的啊:MessageArrived(newClientSocket.RemoteEndPoint.ToString());
    刚刚运行了代码,发现方法并没有绑定到MessageArrived,MessageArrived一直都显示为空,这个是什么原因啊,代码问题的么
      

  8.   

    类中定义事件代码如下: 
    public delegate void DelegateSendmassage(string messageText);
    public event DelegateSendmassage MessageArrived;主程序中绑定代码如下:
    ServerSocket addIP = new ServerSocket("", "");
    addIP.MessageArrived += new ServerSocket.DelegateSendmassage(addonline);
    public void addonline(string message)
            {
                AddOnline(message);   
            }
    public void AddOnline(string userName)
            {
                if (CheckedOnline.InvokeRequired)
                {
                    AddOnlineDelegate d = new AddOnlineDelegate(AddOnline);
                    CheckedOnline.Invoke(d, new object[] { userName });
                }
                else
                {
                    CheckedOnline.Items.Add(userName);
                    CheckedOnline.SelectedIndex = CheckedOnline.Items.Count -1;
                    CheckedOnline.ClearSelected();
                }
            }类中触发事件代码:MessageArrived(newClientSocket.RemoteEndPoint.ToString());
    求高手指点啊~
      

  9.   

    设置断点,发现类中MessageArrived一直显示为null,可能是没有引发事件的原因吧,我再看看吧~
      

  10.   

    addIP.MessageArrived += new ServerSocket.DelegateSendmassage(addonline);
    这一句是不是有问题?addonline没有加引号,也没有括号addonline(string参数)?到底是什么
      

  11.   

    总算把问题解决了,代码没有问题,只是在其他地方将类重新实例化了,需要重新绑定事件才行,不然就为null