1

単純なレコード ストレージ アプリケーションを作成しようとしていますが、何らかのばかげた理由により、レコードを追加した後、C++ がデフォルトの frmview.h フォームに戻ることを拒否しています。

これは私が実行しようとしているコードです:

System::Windows::Forms::DialogResult Result = MessageBox::Show(this,String::Format("Record Added for user {0}, Add another?", txtstaffname),"title", MessageBoxButtons::YesNo, MessageBoxIcon::Information);

    if(System::Windows::Forms::DialogResult::Yes == Result)
        {
            //Do something
        }
            else
                {
                    this->Close;
                    frmview::Show;
                }

デバッガーを実行しようとすると、次の例外が発生します。

11  IntelliSense: a pointer-to-member is not valid for a managed class  $PROJECTDIR$\frmnew.h   444 12  Application1

現在、私が戻ろうとしているフォームは、現在のレコードの追加 (frmnew.h) フォームにも使用されるビュー レコード フォームであり、両方のフォームに次のヘッダーを含めました。

frmview.h (レコードの表示):

#include "frmadd.h"
#include "frmedit.h"

frmadd.h (レコードの追加):

#include "frmview.h"

私のコンピューター システムは Windows 8.1 を実行しており、Visual Studio 2012 がインストールされています (.NET 4.5)

私なら C# または VB.NET を使用しますが、課題の一部として C++ を使用する必要があります。

どんな助けでも素晴らしいでしょう、ありがとう。

4

2 に答える 2

0

問題を確認するためのコードをさらに見ることなく、多くのことを想定しなければならなかったため、マルチソリューションの答えは次のとおりです。

複数のインクルードが問題である場合は、以前にインクルードされていない場合にのみ定義/インクルードするプリプロセッサ ディレクティブで問題を解決する必要があります。.h ファイルの内容全体を

#pragma once
#ifndef HEADERFILENAMEHERE_H
#define HEADERFILENAMEHERE_H
//.....
original header file contents here
//.....
#endif

ただし、出力したエラーに基づいて、使用している構文が間違っていると思います:呼び出す必要があるようです

frmview->Show(this);

それ以外の

frmview::Show;

別の可能性として、コードを再構築して、次のようにインライン化する必要がある場合があります。

//SecondForm.cpp

#include "StdAfx.h"
#include "FirstForm.h"
#include "SecondForm.h"

System::Void CppWinform::SecondForm::button1_Click(System::Object^  sender, System::EventArgs^  e)
{
 FirstForm^ firstForm = gcnew FirstForm();
 firstForm->Show();
 this->Hide();
}

System::Void CppWinform::FirstForm::button1_Click(System::Object^  sender, System::EventArgs^  e) {
 SecondForm^ secondForm = gcnew SecondForm();
 secondForm->Show();
 this->Hide();               
}

乗り方を教えてください。さらに情報が必要な場合は、喜んでお手伝いします:)

于 2014-03-28T16:09:18.500 に答える