回 帖 发 新 帖 刷新版面

主题:大家帮忙看看怎么就不行呢?

partial class Form1
    {              
                  this.comPort.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.comPort_DataReceived);
       delegate void HandleInterfaceUpdateDelegate(string text);//
        HandleInterfaceUpdateDelegate delreceive = new   HandleInterfaceUpdateDelegate(updatatext);//
    }
 public partial class Form1 : Form
    {
        static void updatatext(string text)
        {
            receiveTxt.Text = text;  //出错,提示receivetxt没有实例化
        }

        private void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            byte[] recbyte = new byte[100];
            comPort.Read(recbyte, 0, 100);
           this.Invoke(delreceive,new string[]{Encoding.Unicode.GetString(recbyte)});
        }
       
        }
    }
这是我做的串口程序,主要想学学serialport 的receive事件,查资料写了个这样的程序结果是提示委托里的方法需要静态方法,我就把方法改成静态的了,但静态方法里有提示我textbox控件需要实例化,难道textbox控件在加载时没有实例化吗?
我把textbox在方法中实例化后运行没有一点反映,接受不到数据啊
请大家指教指教.
请问谁有没有这方面的原码发给我学习学习?


回复列表 (共3个回复)

沙发

是不是没有receiveTxt这个控件呢? 放个文本框改名为receiveTxt试试

板凳

我里面有该控件啊
不知道谁有这方面的经验给交流交流?
好象在网上有这方面的介绍但好象都是纸上谈兵实际运行不了
郁闷!·

3 楼

终于完成了
在方法和控件前面加上this就好了

我来回复

您尚未登录,请登录后再回复。点此登录或注册