0

所以我使用 Visual C++ 2013 使用 MFC 制作 GUI 应用程序。我使用本教程将 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 在 C# 设计器文件中与 button1 和 textBox1 一起被声明为 public。我看到的唯一区别是当我将鼠标悬停在 m_Mycontrol... 行中的 button1 或 textbox1 上时,我得到了数据类型,但使用 chart1 我得到的只是 <'error-type'>

任何帮助将不胜感激。

4

1 回答 1

0

更新:因此,在经历了巨大的痛苦并将头撞在桌子上之后,我找到了解决问题的方法。万一将来有人遇到同样的问题并且遇到这篇文章,这对我有用:因为我不能直接从 C++ 端操作 chart1,但我可以在 C# 端,我只是添加了一个富文本框到windows 窗体,使其太小而无法看到,将其隐藏在图表后面,并使用

m_MyControl.GetControl()->richtextBox1->Text = " 1 2 \n 2 2 \n 3 3";

将数据输入到我想要放入图表(C++ 端)的富文本框中的方法。然后,我在 C# 端添加了一个事件处理程序,以便每当更新富文本框时,图表都会解析字符串、获取该数据并绘制它。

编辑:找到这不起作用的实际原因。在项目 > 属性 > 框架和引用下,我需要添加 system.windows.forms.datavisualization 以便 VC++ 知道在哪里可以找到成员函数。现在我可以打电话了

m_ctrl1.GetControl()->chart1->Series[0]->Points->AddXY(0,0);

它工作得很好,将点添加到图表中,我现在是一个快乐的露营者。

于 2013-11-14T20:51:12.807 回答