我写了两个组件,一个组件A从网络上接收数据,另一个组件B把A接收到的数据显示成曲线。B怎样才能读取A的数据?也就是两个组件怎样共享数据?UserControlA
{
   int[] data;
   ReceiveData();
   接收到的数据放在data数组中;
}UserControlB
{
  怎样读取UserControlA中的data?
}

解决方案 »

  1.   

    to kssys() :
    数据量比较大,并且是实时。
    基本上是50毫秒有一个点的数据(X,Y)
      

  2.   

    那么A做个事件吧。public delegate bool MessageHandler(...);通过这个处理消息
      

  3.   

    TO kssys() :
    你能讲得详细一点吗?
    我对这还没有一点头脑,非常感谢!
      

  4.   

    基本的思路是,A收到数据后,触发委托
    定义消息结构:
    public struct MsgInfo
    {
      //....
    }//定义委托
    public delegate bool MessageHandler(object sender,ref MsgInfo e);
    public event MessageHandler ProcessMessage;//收到数据,触发
    if (ProcessMessage!=null) 
    {
      //触发事件
      ProcessMessage(...);
    }
      

  5.   

    TO kssys() :
    实在不好意思,太惭愧了。
    还是不太理解,B怎么读取A中的data呢?
      

  6.   

    B通过A的事件ProcessMessage中的参数e获取。
    e具有MsgInfo结构,而MsgInfo结构里面有当前数据的引用