vc.net中一个简单的问题,可是自己纠结了好久,纯新手,希望大家帮忙解答,谢谢!

皑刈苑 2015-02-11 06:22:01
大概代码如下:


namespace COMRecEvent {

……

(在窗体设计时添加了一个TextBox1)

……
#pragma endregion

ref class PortDataReceived//一个串口数据接收的类
{
public:
static void Main( )
{
//串口实例化及初始化设置
SerialPort^ mySerialPort = gcnew SerialPort("COM1");
mySerialPort->BaudRate = 9600;
mySerialPort->Parity = Parity::None;
mySerialPort->StopBits = StopBits::One;
mySerialPort->DataBits = 8;
mySerialPort->Handshake = Handshake::None;

mySerialPort->DataReceived += gcnew SerialDataReceivedEventHandler(DataReceivedHandler);

mySerialPort->Open();
mySerialPort->Close();

}
private:
//串口事件接收数据,并读取到indata变量中
static void DataReceivedHandler( Object^ sender,SerialDataReceivedEventArgs^ e)
{
SerialPort^ sp = (SerialPort^)sender;
String^ indata = sp->ReadExisting();
//想在这里调用TextBox1对象,把数据显示出来,该怎么做???????????
Form1::TextBox1->text=indata;//这样会报错 “->text”的左边必须指向类/结构/联合/泛型类型
}
};
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
//静态类调用
PortDataReceived::Main ();
}
}
...全文
564 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
mySerialPort->Open();         mySerialPort->Close(); 你这个能收到数据吗?直接开了关了? 不是先关了再开着吗? 看清楚 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //该死的验证码。回答一个问题。 常常认错。得打好几次验证码。才能输入进来 //混账设计。不能把验证码搞大一点吗 //常常提示验证码错误。输了一遍有一遍。变态设计 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
本拉灯 2015-03-20
  • 打赏
  • 举报
回复
Form1::TextBox1->text=indata; 这东西TextBox不是静态类型,不能这么用吧,还有Form1 还没实列化也不能用吧
Dobzhansky 2015-03-20
  • 打赏
  • 举报
回复
Form1:: 改成 Form1->
拜一刀 2015-03-20
  • 打赏
  • 举报
回复
上学的时候就最烦:: . ->了,现在在用vb.net
於黾 2015-03-20
  • 打赏
  • 举报
回复
VC++里 string其实就是 char c[]这种东西了 所以上面其实应该这样写 TextBox1.SetWindowText(c,12)
於黾 2015-03-20
  • 打赏
  • 举报
回复
也许你可以试试 TextBox1.GetWindowText(string,length) 和 TextBox1.SetWindowText(string,length) 这是C++的语法,不知道VC.net里是不是这样
於黾 2015-03-20
  • 打赏
  • 举报
回复
引用 1 楼 sinat_25064139 的回复:
Form1::TextBox1->text=indata; 我怎么觉得这是C++的语法啊 C#里面没指针吧
人家本来就是VC,不是C# VC++6.0我还知道,不知道VC.NET到底有多大区别 但是我知道VC++是面向过程的,并不面向对象,所以控件下面没有Text属性可以直接使用 你需要定义个string型的变量去绑定这个控件,然后取变量的值就行了
sinat_25064139 2015-03-20
  • 打赏
  • 举报
回复
Form1::TextBox1->text=indata; 我怎么觉得这是C++的语法啊 C#里面没指针吧

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧