目的:定义了两个窗体,第一个按下按键,打开第二个窗体,第二个窗体按下按键,可以更改label1的text,label1在第一个窗体中。以下是部分程序:
Form1.h:
#include "frm2.h"namespace xxx { ...
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{ ... } protected:
~Form1()
{ ... }
private: System::Windows::Forms::Button^  button1;
protected: 
private: System::Windows::Forms::Label^  label1;  frm2^ fs2;#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{ ... }
#pragma endregion
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 fs2 = gcnew frm2;
 fs2->Show();
 }
};
}frm2.h
#pragma once...namespace xxx { ref class Form1; public ref class frm2 : public System::Windows::Forms::Form
{
public:
frm2(void)
{ ... } protected:
~frm2()
{ ... }
public:  Form1^ to_f1;
private: System::Windows::Forms::Button^  button1;
protected:  private:
/// <summary>
/// 必需的设计器变量。
/// </summary>
System::ComponentModel::Container ^components;#pragma region Windows Form Designer generated code
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
void InitializeComponent(void)
{ ... }
#pragma endregion
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
 to_f1->label1->Text = "this is form2 text";  
 }
};
}这时会编译出错,产生如下信息:
1>c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(89) : error C2027: 使用了未定义类型“xxx::Form1”
1>        c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(22) : 参见“xxx::Form1”的声明
1>c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(89) : error C2227: “->label1”的左边必须指向类/结构/联合/泛型类型
1>c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(89) : error C2227: “->Text”的左边必须指向类/结构/联合/泛型类型
1>xxx.cpp
1>c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(89) : error C2027: 使用了未定义类型“xxx::Form1”
1>        c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(22) : 参见“xxx::Form1”的声明
1>c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(89) : error C2227: “->label1”的左边必须指向类/结构/联合/泛型类型
1>c:\documents and settings\haj.haj-asus\my documents\visual studio 2008\projects\xxx\xxx\frm2.h(89) : error C2227: “->Text”的左边必须指向类/结构/联合/泛型类型若屏蔽to_f1->label1->Text = "this is form2 text";这一句,则编译通过。要怎样才能解决这个问题呢?我的目的即是两个窗体分别可以引用另一窗体的某些控件或属性!