このカスタム テスト クラスを作成しました。
#include "Form1.h"
class Demo
{
public:
void sayHello()
{
System::Windows::Forms::Form1->Text = "Hello Form!"; // does not work
Form1->Text = "Hello Form!"; // does not work
Form1.Text = "Hello Form!"; // does not work
}
};
私は基本的にこのコンパイラエラーを受け取ります:
c:\users\pieter kubben\documents\visual studio 2010\projects\testclassref\testclassref\Demo.h(8): error C2065: 'Form1' : undeclared identifier
c:\users\pieter kubben\documents\visual studio 2010\projects\testclassref\testclassref\Demo.h(8): error C2227: left of '->Text' must point to class/struct/union/generic type
したがって、Form1 は表示されないと思います。逆にsayHello()
、Form1 でボタンをクリックしたときに関数が呼び出されるようにしても問題ありません。
main()
関数 (IDE によって自動生成されたもの) に次の行が含まれている
ことに気付きました。Application::Run(gcnew Form1());
そのため、Form1.h は (もちろん) 存在しますが、コンパイラの起動時に Form1 はまだ作成されていないように見えます。
カスタム クラスから Form1 要素にアクセスするにはどうすればよいですか? たとえば、Form1.Text を変更しますか?