Windows窗体应用程序-项目生成,但设计器不';t识别列表<;T>; 我在Visual C++ 2010中开发了一个Windows窗体应用程序。 我正在尝试使用列表(System::Collections::Generic::List)。直到某一时刻,一切都很好。然后,我看不出有什么特别的原因,设计师开始不承认Link^是一种类型。错误消息是:

Windows窗体应用程序-项目生成,但设计器不';t识别列表<;T>; 我在Visual C++ 2010中开发了一个Windows窗体应用程序。 我正在尝试使用列表(System::Collections::Generic::List)。直到某一时刻,一切都很好。然后,我看不出有什么特别的原因,设计师开始不承认Link^是一种类型。错误消息是:,c++,winforms,list,C++,Winforms,List,C++CodeDOM解析器错误:行:70,列:17--未知类型“System.Collections.Generic.List^”。请确保引用了包含此类型的程序集。如果此类型是开发项目的一部分,请确保已成功生成该项目 奇怪的是,项目构建和运行都很完美,唯一导致问题的是设计师 以下是代码的重要部分(据我所知): using namespace System; using namespace System::ComponentModel; using namespace System::Collec

C++CodeDOM解析器错误:行:70,列:17--未知类型“System.Collections.Generic.List^”。请确保引用了包含此类型的程序集。如果此类型是开发项目的一部分,请确保已成功生成该项目

奇怪的是,项目构建和运行都很完美,唯一导致问题的是设计师

以下是代码的重要部分(据我所知):

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::Collections::Generic; //I only added this line

我尝试了System::Collections::Generic::List ^MyText和just List ^MyText(因为我使用名称空间System::Collections::Generic添加了它们),但它仍然会给出错误消息

我已经注释掉了带有列表的代码位,设计器工作得很好,但是当我把代码放回游戏中时,错误又回来了。我尝试重新启动Visual C++无限的时间,从项目中删除文件并重新添加,结果总是相同的:项目生成,设计器不工作。我的想法不多,所以。。。有什么帮助吗


(哦,还有一个选项可以跳过错误,它通常会向我显示设计器,但是,正如程序在单击该选项时警告的那样,有时它会显示缺少一些控件的设计器,并且Form1.h中的代码块会消失)

您正在手动编辑InitializeComponent()方法。这真是个糟糕的主意,这种方法是留给设计师的。将MyText赋值移到构造函数中。这样做了,到目前为止,它似乎工作得很好。有趣的是,我已经做了很长时间了,从来没有遇到过问题。我想,活着就是为了学习。谢谢你的帮助。(如果你愿意,把你说的话改写成一个答案,这样我就可以接受。)@HansPassant我刚刚意识到你没有收到我的评论,所以可能没有看到。如果是这样,我道歉,我之前的评论仍然有效
private: System::Collections::Generic::List<String^>^ MyText;
//Manually added the line above
private: System::Windows::Forms::Button^  button1;
void InitializeComponent(void)
{    
    this->MyText = (gcnew System::Collections::Generic::List<String^>());
    //again, added the line above
    this->button1 = (gcnew System::Windows::Forms::Button());
}
//and this is how I'm currently using the List
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
{
    textBox1->Text = MyText->Count + " " + MyText->Capacity;
}
// textBox1->Text becomes 0 0