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'

C# デザイナー ファイル内で chart1 が button1 および textBox1 と共に public と宣言されているため、これが発生する理由がわかりません。これらとの唯一の違いは、m_Mycontrol...行のbutton1またはtextbox1にカーソルを合わせると、データ型を取得できますが、chart1では<'error-type'>だけです

どんな助けでも大歓迎です。

4

1 に答える 1

0

更新: そのため、多くの苦痛と机に頭をぶつけた後、私が抱えていた問題の回避策を見つけました。将来誰かが同じ問題を抱えてこの投稿に出くわした場合、これは私にとってうまくいきました.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);

それはうまく機能し、ポイントをグラフに追加し、私は今幸せなキャンピングカーです.

于 2013-11-14T20:51:12.807 に答える