Связывание данных DDX с Windows Forms не может найти метод класса

Поэтому я использую Visual C ++ 2013 для создания приложений с графическим интерфейсом, используя MFC. Я встроил форму C # Windows в графический интерфейс, используя это руководство и оттуда использовал это руководство, добавить привязку данных в окно Windows Form. Теперь я могу использовать следующую строку в 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 объявлен как public вместе с button1 и textBox1 внутри файла дизайнера C #. Единственное отличие, которое я вижу в этом, заключается в том, что при наведении курсора на button1 или textbox1 в строке m_Mycontrol … я получаю тип данных, но с chart1 все, что я получаю, это <«Ошибка типа»>

Любая помощь будет принята с благодарностью.

0

Решение

Обновление: так что после сильной боли и стуча головой по столу, я нашел обходной путь к своей проблеме. Если кто-то в будущем столкнется с такой же проблемой и столкнется с этим постом, это то, что сработало для меня: поскольку я не мог манипулировать chart1 непосредственно со стороны C ++, но я мог со стороны 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);

и это работает просто отлично, добавляет точки к графику, и я теперь счастливый турист.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]