问题描述
大概代码如下:namespaceCOMRecEvent{……(在窗体设计时添加了一个TextBox1)……#pragmaendregionrefclassPortDataReceived//一个串口数据接收的类{public:staticvoidMain(){//串口实例化及初始化设置SerialPort^mySerialPort=gcnewSerialPort("COM1");mySerialPort->BaudRate=9600;mySerialPort->Parity=Parity::None;mySerialPort->StopBits=StopBits::One;mySerialPort->DataBits=8;mySerialPort->Handshake=Handshake::None;mySerialPort->DataReceived+=gcnewSerialDataReceivedEventHandler(DataReceivedHandler);mySerialPort->Open();mySerialPort->Close();}private://串口事件接收数据,并读取到indata变量中staticvoidDataReceivedHandler(Object^sender,SerialDataReceivedEventArgs^e){SerialPort^sp=(SerialPort^)sender;String^indata=sp->ReadExisting();//想在这里调用TextBox1对象,把数据显示出来,该怎么做???????????Form1::TextBox1->text=indata;//这样会报错“->text”的左边必须指向类/结构/联合/泛型类型}};private:System::VoidForm1_Load(System::Object^sender,System::EventArgs^e){//静态类调用PortDataReceived::Main();}}
解决方案
解决方案二:
Form1::TextBox1->text=indata;我怎么觉得这是C++的语法啊C#里面没指针吧
解决方案三:
引用1楼sinat_25064139的回复:
Form1::TextBox1->text=indata;我怎么觉得这是C++的语法啊C#里面没指针吧
人家本来就是VC,不是C#VC++6.0我还知道,不知道VC.NET到底有多大区别但是我知道VC++是面向过程的,并不面向对象,所以控件下面没有Text属性可以直接使用你需要定义个string型的变量去绑定这个控件,然后取变量的值就行了
解决方案四:
也许你可以试试TextBox1.GetWindowText(string,length)和TextBox1.SetWindowText(string,length)这是C++的语法,不知道VC.net里是不是这样
解决方案五:
VC++里string其实就是charc[]这种东西了所以上面其实应该这样写TextBox1.SetWindowText(c,12)
解决方案六:
上学的时候就最烦::.->了,现在在用vb.net
解决方案七:
Form1::改成Form1->
解决方案八:
Form1::TextBox1->text=indata;这东西TextBox不是静态类型,不能这么用吧,还有Form1还没实列化也不能用吧
解决方案九:
mySerialPort->Open(); mySerialPort->Close();你这个能收到数据吗?直接开了关了?不是先关了再开着吗?看清楚/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////该死的验证码。回答一个问题。 常常认错。得打好几次验证码。才能输入进来//混账设计。不能把验证码搞大一点吗//常常提示验证码错误。输了一遍有一遍。变态设计/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////