DDX 数据绑定与 Windows 窗体找不到类方法

DDX Data Binding with Windows Forms Can't Find Class Method

本文关键字:找不到 类方法 窗体 Windows 数据绑定 DDX      更新时间:2023-10-16

所以我正在使用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# 设计器文件中的按钮 1 和 textBox1 一起声明为公共。我看到的唯一区别是当我将鼠标悬停在m_Mycontrol中的按钮 1 或文本框 1 上时......行我得到数据类型,但使用 chart1 我得到的只是<"错误类型>

任何帮助将不胜感激。

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

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);

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