【问题标题】:DDX Data Binding with Windows Forms Can't Find Class MethodDDX 数据绑定与 Windows 窗体找不到类方法
【发布时间】:2013-11-25 08:58:39
【问题描述】:

所以我使用 Visual C++ 2013 使用 MFC 制作 GUI 应用程序。我已经使用 tutorial 将 C# Windows 窗体嵌入到 GUI 中,并从那里使用 tutorial 将数据绑定添加到 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'

我不知道为什么会发生这种情况,因为在 C# 设计器文件中,chart1 与 button1 和 textBox1 一起被声明为 public。我看到的唯一区别是当我将鼠标悬停在 m_Mycontrol... 行中的 button1 或 textbox1 上时,我得到了数据类型,但使用 chart1 我得到的只是

任何帮助将不胜感激。

【问题讨论】:

  • 我的猜测是你没有在 Windows 窗体窗口的图表控件中声明 Name 属性

标签: c# c++ charts mfc ddx


【解决方案1】:

更新:因此,在经历了巨大的痛苦并将头撞在桌子上之后,我找到了解决问题的方法。万一将来有人遇到同样的问题并遇到这篇文章,这对我有用:因为我不能直接从 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);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 2013-04-11
    • 2017-02-27
    相关资源
    最近更新 更多