Form.cpp(16):错误C2061:语法错误:标识符'Form1'

时间:2012-12-26 18:26:39

标签: c++-cli windows-forms-designer

我试图开始使用Windows Forms ...而我试图通过课程制作程序......但它不起作用,我不明白为什么。如果有人可以帮助我,那就太好了。

我的错误:

1>ClCompile:
1>  stdafx.cpp
1>  AssemblyInfo.cpp
1>  Form.cpp
1>Form.cpp(16): error C2872: 'Form1' : ambiguous symbol
1>          could be 'Form1'
1>          or       'c:\users\mizuru\documents\visual studio 2010\projects\form\form\Form1.h(15) : Form1::Form1'
1>Form.cpp(16): error C2061: syntax error : identifier 'Form1'
1>  Generating Code...
1>
1>Build FAILED.

Form.cpp

// Form.cpp : main project file.
    #include "stdafx.h"
    #include "Form1.h"

    using namespace Form1;

    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    {
        // Enabling Windows XP visual effects before any controls are created
        Application::EnableVisualStyles();
        Application::SetCompatibleTextRenderingDefault(false); 

        // Create the main window and run it
        Application::Run(gcnew Form1());
        return 0;
    }

Form1.h

#pragma once

namespace Form1 {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
        using namespace System::Windows::Forms;
        using namespace System::Data;
        using namespace System::Drawing;

        /// <summary>
        /// Summary for Form1
        /// </summary>
        public ref class Form1 : public System::Windows::Forms::Form
        {
        public:
            Form1(void)
            {
                InitializeComponent();
                //
                //TODO: Add the constructor code here
                //
            }

        protected:
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            ~Form1()
            {
                if (components)
                {
                    delete components;
                }
            }
        private: System::Windows::Forms::Button^  button1;
        protected: 
        private: System::Windows::Forms::Label^  label1;
        private: System::Windows::Forms::TextBox^  textBox1;

        private:
            /// <summary>
            /// Required designer variable.
            /// </summary>
            System::ComponentModel::Container ^components;

    #pragma region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            void InitializeComponent(void)
            {
                this->button1 = (gcnew System::Windows::Forms::Button());
                this->label1 = (gcnew System::Windows::Forms::Label());
                this->textBox1 = (gcnew System::Windows::Forms::TextBox());
                this->SuspendLayout();
                // 
                // button1
                // 
                this->button1->Location = System::Drawing::Point(113, 181);
                this->button1->Name = L"button1";
                this->button1->Size = System::Drawing::Size(75, 23);
                this->button1->TabIndex = 0;
                this->button1->Text = L"button1";
                this->button1->UseVisualStyleBackColor = true;
                this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
                // 
                // label1
                // 
                this->label1->AutoSize = true;
                this->label1->Location = System::Drawing::Point(104, 13);
                this->label1->Name = L"label1";
                this->label1->Size = System::Drawing::Size(35, 13);
                this->label1->TabIndex = 1;


        this->label1->Text = L"label1";
            // 
            // textBox1
            // 
            this->textBox1->Location = System::Drawing::Point(113, 110);
            this->textBox1->Name = L"textBox1";
            this->textBox1->Size = System::Drawing::Size(100, 20);
            this->textBox1->TabIndex = 2;
            this->textBox1->TextChanged += gcnew System::EventHandler(this, &Form1::textBox1_TextChanged);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(284, 262);
            this->Controls->Add(this->textBox1);
            this->Controls->Add(this->label1);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
            this->PerformLayout();

        }
#pragma endregion
    private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
                 label1->Text="";
             }
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 label1->Text=textBox1->Text;
             }
    };
}

1 个答案:

答案 0 :(得分:1)

手头的问题是您的命名空间和表单类都共享名称Form1。您必须通过指定它是命名空间中的类来消除符号的歧义。

Application::Run(gcnew ::Form1::Form1());