所以我使用Visual 2013来制作一个使用C++的图形用户界面应用程序。我使用这个C# 教程将一个Windows表单嵌入到GUI中,然后使用这个教程将数据绑定添加到Windows窗口。现在,我可以在C++中使用以下行来更改按钮和文本的属性:
m_MyControl.GetControl()->textBox1->Text = "text changed";
m_MyControl.GetControl()->button1->Text = "text changed";但是,当我尝试使用相同的方法更改添加到Windows窗体的图表的属性时,如下所示:
m_MyControl.GetControl()->chart1->Name = "test";然后我得到了一个错误
error C2039: 'Name' : is not a member of System::Windows::Forms::DataVisualization::Charting::Chart'我不知道为什么会出现这种情况,因为chart1与button1和textBox1一起在C# designer文件中被声明为公共的。我看到的唯一不同之处是当我在button1或textbox1上盘旋在m_Mycontrol上时.行我得到了数据类型,但是在chart1中,我得到的只是<‘错误类型’>!
任何帮助都将不胜感激。
发布于 2013-11-14 20:51:12
更新:在经历了很多痛苦之后,我把头撞在桌子上,找到了解决问题的方法。如果将来有人遇到同样的问题,并遇到这篇文章,这就是对我有用的地方:因为我不能从chart1端直接操作C++,但是可以在C#端操作,所以我只是在windows窗体中添加了一个丰富的文本框,使其太小,无法看到,将其隐藏在图表后面,并使用
m_MyControl.GetControl()->richtextBox1->Text = " 1 2 \n 2 2 \n 3 3";方法将数据输入到我想要放到图表中的富文本框(C++侧)。然后,我在C#端添加了一个事件处理程序,以便每当更新富textbox时,图表就会解析该字符串,获取该数据并绘制它。
编辑:找到了这不起作用的实际原因。在项目>属性>框架和引用下,我需要添加system.windows.forms.datavisualization,以便VC++知道在哪里找到成员函数。现在我可以打电话了
m_ctrl1.GetControl()->chart1->Series[0]->Points->AddXY(0,0);它工作得很好,把点加到图上,我现在是一个快乐的露营者。
https://stackoverflow.com/questions/19942257
复制相似问题