本人较菜,在编写一个串口通信的程序,利用消息响应机制,在Form中声明一个static方法作为串口收到数据的响应函数,意图是在串口收到数据后,进行处理,之后将处理后的数据在界面的控件中显示出来,请问该如何处理,网上的回答都是使用异步代理,能够详细告知,最好有代码,谢谢!

解决方案 »

  1.   

    static  1个变量 指向 实例话的Form通过这个变量  BeginInvoke
      

  2.   

    BeginInvoke也需要一个static函数啊,在static函数里面怎么操作控件啊??
    我是这么写的,在static方法中:
                Form1 fm = new Form1();
                fm.BeginInvoke(new delFunction(OperateControl));
    OperateControl函数也必须是static才行啊,那怎么操作控件呢?谢谢
      

  3.   

    新new的窗体和你显示的窗体是2个窗体static 1个 fm   主窗体 初始化的时候指向   主窗体static 函数里
    fm.BeginInvoke(new delFunction(fm.OperateControl))
      

  4.   

    谢谢,你的意思是不是这样:
            public delegate void delFunction();
            static Form1 fm;
            public Form1()
            {
                InitializeComponent();
                fm = this;
            }
            static void staticFunction()
            {
                fm.BeginInvoke(new delFunction(fm.OperateControl));
            }
            private void OperateControl()
            {
                this.label1.Text = "111";
            }