Error c2061 синтаксическая ошибка идентификатор listbox

I try to reference a struct from another class in my code and it gives me an error, saying I have a syntax problem.

#pragma once

#include "Definitions.h"

#include "GV.h"
#include "UI.h"
#include "Tile.h"
#include "Item.h"

class Figure {
public:
    //Figure index
    struct FIGURE_TYPE {
        //Where to crop the image from
        SDL_Rect crop;
        int x;
        int y;
    };

    //The game figure
    FIGURE_TYPE figure_index[FIGURE_COUNT];

    //The figure array
    int figure_array[MAP_HEIGHT / 64][MAP_WIDTH / 64];

    //Functions
    Figure ( void );
    bool draw_figures ( SDL_Surface* screen, SDL_Surface* figures, SDL_Rect camera, Figure::FIGURE_TYPE figure_spec[FIGURE_COUNT] );
};

That’s the struct in Figure.h,

#pragma once

#include "Definitions.h"

#include "GV.h"
#include "Tile.h"
#include "Item.h"
#include "Figure.h"

class UI {
public:
    UI ( void );
    void set_camera ( SDL_Rect& camera, Figure::FIGURE_TYPE figure_spec[FIGURE_COUNT] );
    bool draw_map ( SDL_Surface* screen, SDL_Rect& camera, SDL_Surface* tiles, SDL_Surface* figures, Figure::FIGURE_TYPE figure_spec[FIGURE_COUNT] );
    bool draw_status ( void );
};

And that is where I reference it, from another header file called UI.h. I know there is a problem with referencing structures, I just don’t know how to fix it. Simple problem, any one wanna help?

The problem is not that Figure Type is declared outside of Figure.h, or that it is private as opposed to public.

Error Reports

Error 1 error C2653: ‘Figure’ : is not a class or namespace name c:usersjimdocumentsc++roguelikeroguelikeui.h 13 1 roguelike

Error 3 error C2653: ‘Figure’ : is not a class or namespace name c:usersjimdocumentsc++roguelikeroguelikeui.h 14 1 roguelike

Error 2 error C2061: syntax error : identifier ‘FIGURE_TYPE’ c:usersjimdocumentsc++roguelikeroguelikeui.h 13 1 roguelike

Error 4 error C2061: syntax error : identifier ‘FIGURE_TYPE’ c:usersjimdocumentsc++roguelikeroguelikeui.h 14 1 roguelike

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
#pragma once #include "MyForm.h" #include <Windows.h> #include <string> #include <math.h> #include <tchar.h> #include <Windows.h> #include "../../../../../../Program Files (x86)/EASendMail/Include/tlh/easendmailobj.tlh" #include "Test.h" using namespace EASendMailObjLib; using std::string; namespace Final {       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>     /// Сводка для MyForm     /// </summary>     public ref class MyForm : public System::Windows::Forms::Form     {     public:         MyForm(void)         {             InitializeComponent();             //             //TODO: добавьте код конструктора             //         }       protected:         /// <summary>         /// Освободить все используемые ресурсы.         /// </summary>         ~MyForm()         {             if (components)             {                 delete components;             }         }       private: System::Windows::Forms::TextBox^ textBox1;     private: System::Windows::Forms::Button^ button1;       private: System::Windows::Forms::Label^ label1;       private: System::Windows::Forms::PictureBox^ pictureBox2;     private: System::Windows::Forms::PictureBox^ pictureBox1;           protected:       protected:       private:         /// <summary>         /// Обязательная переменная конструктора.         /// </summary>         System::ComponentModel::Container ^components;   #pragma region Windows Form Designer generated code         /// <summary>         /// Требуемый метод для поддержки конструктора — не изменяйте          /// содержимое этого метода с помощью редактора кода.         /// </summary>         void InitializeComponent(void)         {             System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MyForm::typeid));             this->textBox1 = (gcnew System::Windows::Forms::TextBox());             this->button1 = (gcnew System::Windows::Forms::Button());             this->label1 = (gcnew System::Windows::Forms::Label());             this->pictureBox2 = (gcnew System::Windows::Forms::PictureBox());             this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());             (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->BeginInit();             (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->BeginInit();             this->SuspendLayout();             //              // textBox1             //              this->textBox1->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(64)), static_cast<System::Int32>(static_cast<System::Byte>(64)),                 static_cast<System::Int32>(static_cast<System::Byte>(64)));             this->textBox1->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle;             this->textBox1->Font = (gcnew System::Drawing::Font(L"Chiller", 15.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,                 static_cast<System::Byte>(0)));             this->textBox1->ForeColor = System::Drawing::Color::DarkRed;             this->textBox1->Location = System::Drawing::Point(111, 104);             this->textBox1->Multiline = true;             this->textBox1->Name = L"textBox1";             this->textBox1->Size = System::Drawing::Size(238, 64);             this->textBox1->TabIndex = 1;             this->textBox1->TextChanged += gcnew System::EventHandler(this, &MyForm::textBox1_TextChanged);             //              // button1             //              this->button1->Font = (gcnew System::Drawing::Font(L"Agency FB", 15.75F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,                 static_cast<System::Byte>(0)));             this->button1->ForeColor = System::Drawing::SystemColors::ActiveCaptionText;             this->button1->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"button1.Image")));             this->button1->Location = System::Drawing::Point(158, 200);             this->button1->Name = L"button1";             this->button1->Size = System::Drawing::Size(148, 35);             this->button1->TabIndex = 2;             this->button1->Text = L"Examine me, creator!";             this->button1->UseVisualStyleBackColor = true;             this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);             //              // label1             //              this->label1->AutoSize = true;             this->label1->BackColor = System::Drawing::Color::Black;             this->label1->Font = (gcnew System::Drawing::Font(L"Agency FB", 32.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,                 static_cast<System::Byte>(0)));             this->label1->ForeColor = System::Drawing::Color::Maroon;             this->label1->Location = System::Drawing::Point(21, 25);             this->label1->Name = L"label1";             this->label1->Size = System::Drawing::Size(422, 52);             this->label1->TabIndex = 3;             this->label1->Text = L"What is wrong with my data";             this->label1->Click += gcnew System::EventHandler(this, &MyForm::label1_Click_1);             //              // pictureBox2             //              this->pictureBox2->BackgroundImageLayout = System::Windows::Forms::ImageLayout::Stretch;             this->pictureBox2->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox2.Image")));             this->pictureBox2->Location = System::Drawing::Point(192, 264);             this->pictureBox2->Name = L"pictureBox2";             this->pictureBox2->Size = System::Drawing::Size(82, 44);             this->pictureBox2->TabIndex = 4;             this->pictureBox2->TabStop = false;             //              // pictureBox1             //              this->pictureBox1->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox1.Image")));             this->pictureBox1->Location = System::Drawing::Point(-83, -23);             this->pictureBox1->Name = L"pictureBox1";             this->pictureBox1->Size = System::Drawing::Size(564, 358);             this->pictureBox1->TabIndex = 0;             this->pictureBox1->TabStop = false;             this->pictureBox1->Click += gcnew System::EventHandler(this, &MyForm::pictureBox1_Click);             //              // MyForm             //              this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);             this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;             this->BackColor = System::Drawing::SystemColors::ControlLightLight;             this->ClientSize = System::Drawing::Size(465, 320);             this->Controls->Add(this->pictureBox2);             this->Controls->Add(this->label1);             this->Controls->Add(this->button1);             this->Controls->Add(this->textBox1);             this->Controls->Add(this->pictureBox1);             this->Icon = (cli::safe_cast<System::Drawing::Icon^>(resources->GetObject(L"$this.Icon")));             this->MaximizeBox = false;             this->Name = L"MyForm";             this->SizeGripStyle = System::Windows::Forms::SizeGripStyle::Hide;             this->Text = L"Final";             this->TopMost = true;             this->Load += gcnew System::EventHandler(this, &MyForm::MyForm_Load);             (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox2))->EndInit();             (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->EndInit();             this->ResumeLayout(false);             this->PerformLayout();           } #pragma endregion     private: System::Void MyForm_Load(System::Object^ sender, System::EventArgs^ e) {     }     private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)     {             }     private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)     {         int n;         char k;         string s;         if (textBox1->Text->Length == 0)         {             MessageBox::Show("Don't push it without reason");         }         else         {                 n = textBox1->Text->Length;               for (int i = 0; i < n; i++)             {                 k = tolower(textBox1->Text[i]);                 s = s + k;             }           }         if (s == "your data stinks")         {             Test^ f2 = gcnew Test();             f2->Show();         }         else         {             MessageBox::Show("No.");         }     } private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) { } private: System::Void label1_Click_1(System::Object^ sender, System::EventArgs^ e) { } private: System::Void pictureBox2_Click(System::Object^ sender, System::EventArgs^ e) { } private: System::Void pictureBox1_Click(System::Object^ sender, System::EventArgs^ e) { } }; }

Синтаксическая ошибка: идентификатор «Player». Файл mob.h ст 40
Гуглить пробовал. Ответ так и не нашел

player.h:

#pragma once #include "Weapon.h" #include "Mob.h" class Player { public: int health, armor, exp, mana; int currentHealth, currentArmor, currentMana, toNextLvlExp, balance; int missChanceBody, missChanceHead, missChanceLegs; Weapon sword; Weapon magicStick; Player(int _health, int _armor, const Weapon& _sword, const Weapon& _magicStick); int takePhysicalDamage(Mob& m); };

mob.h:

#pragma once #include <string> #include "Player.h" using namespace std; class Mob { public: enum mobType { PHYSIC, MAGIC }; enum attackDir { HEAD, BODY, LEGS }; int health, armor, magicResistance, shockResistance; int currentHealth, damage, spreadDamage; string name; mobType attackType; /** * Конструктор класса Mob. * Принимает 3 аргумента * _health - здоровье моба * _magicResistance - защита от магического урона * _shockResistance - защита от физического урона * _damage - урон * _spreadDamage - Разброс урона * _name - Имя моба * type - тип атаки моба */ Mob(int _health, int _magicResistance, int _shockResistance, int _damage, int _spreadDamage, string _name, mobType type); int takePhysicalDamage(Player* player, attackDir dir); int takeMagicalDamage(Player* player, attackDir dir); };

к Form1.h подключаю Form2.h

Код:

//открываю 2-ую форму в Form1.h:      
 private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e){
           Form2^ f2 = gcnew Form2();
           f2->Show();
        }

Form2.h

Код:

public: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
             if (radioButton1->Checked==true) listBox1->Items->Add(textBox1->Text);
             else listBox2->Items->Add(textBox1->Text);
         }

ругается, что не знает listbox

на форуме нашла пример

Цитата:

1) Имеются 2 формы — Form1 и Form2, на Form1 располагаются Button (button1, будет открывать вторую форму) и Label (label1, здесь будем менять текст). На Form2 — button1, по нажатию на которую будет происходить смена текста в label1.
2) Так как нам из первой формы нужно иметь доступ ко второй, а из второй к первой, то будет возникать проблема перекрестных ссылок (когда Form1.h ссылается на Form2.h, который в свою очередь опять ссылается на Form1.h). Для того, чтобы этого избежать, код первой формы (Form1), который будет иметь доступ ко второй форме (Form2) мы вынесем из h-файла в cpp файл.
Таким образом нужно создать файл Form1.cpp. (source files-> правая кнопка->создать)
3) Объявить открытый метод Set в Form1.h для того, чтобы можно было изменить текст label1:
Код C++

public: void Set(String^ text)
{
label1->Text = text;
}
4) В файле Form2.h подключаем Form1.h:
Код C++
1
#include «Form1.h»
и создаем конструктор, который будет принимать и сохранять ссылку на первую форму для дальнейшего использования:
Код C++

Form2(Form1^ parent)
{
InitializeComponent();
parentForm = parent;
}
//…
Код C++

private: Form1^ parentForm;
По клику кнопки, будем вызывать метод Set родительской формы:
Код C++

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
parentForm->Set(«hello from form2»);
}
5) Осталось в первой форме сделать открытие второй формы. Для этого из Form1.h обработчик нажатия кнопки переносим в Form1.cpp, а в h-файле оставляем только его объявление:
Form1.cpp:
Код C++

#include «StdAfx.h»
#include «Form1.h»
#include «Form2.h»
namespace testApp {
System::Void Form1::button1_Click(System::Object^ sender, System::EventArgs^ e) {
Form2^ f2 = gcnew Form2(this);
f2->Show();
this->Hide();
}
}

В Form1.h (#include «Form2.h» там не нужен, — не будет работать) вставляем только:
Код C++
1
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e);
На этом все. Можно скомпилировать и проверить проект.

Код:

// Lab1.cpp: главный файл проекта.

#include «stdafx.h»
#include «Form1.h»
#include «Form2.h»
    namespace testApp {
           System::Void button5_Click(System::Object^  sender, System::EventArgs^  e) {
           Form2^ f2 = gcnew Form2();
            f2->Show();
        }
    }

using namespace Lab1;

[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);

    // Создание главного окна и его запуск
    Application::Run(gcnew Form1());
    return 0;
}

добавила в Form1.h

Код:

private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e);
public: void Set(String^ text)
    {
        listBox1->Items->Add(text);
    }

добавила в Form2.h

Код:

public:
        Form2(Form1^ parent)
        {

            InitializeComponent();
            parentForm = parent;
                 }

private:
        /// <summary>
        /// Требуется переменная конструктора.
        Form1^ parentForm;

public: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
            parentForm>Set(textBox1>Text);
         }

запускаю и:
1>—— Построение начато: проект: Lab1, Конфигурация: Debug Win32 ——
1> Form2.cpp
1> Lab1.cpp
1>Lab1.cpp(8): error C2065: Form2: необъявленный идентификатор
1>Lab1.cpp(8): error C2065: f2: необъявленный идентификатор
1>Lab1.cpp(8): error C2061: синтаксическая ошибка: идентификатор «Form2»
1>Lab1.cpp(9): error C2065: f2: необъявленный идентификатор
1>Lab1.cpp(9): error C2227: выражение слева от «->Show» должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: ‘unknown-type’

помогите разобраться, пожалуйста в Builder C++ очень легко это сделать, а вот в Visual C++ не пойму как…

Синтаксическая ошибка: идентификатор «Player». Файл mob.h ст 40
Гуглить пробовал. Ответ так и не нашел

player.h:

#pragma once
#include "Weapon.h"
#include "Mob.h"

class Player
{
public:
	int health, armor, exp, mana;
	int currentHealth, currentArmor, currentMana, toNextLvlExp, balance;
	int missChanceBody, missChanceHead, missChanceLegs;

	Weapon sword;
	Weapon magicStick;

	Player(int _health, int _armor, const Weapon& _sword, const Weapon& _magicStick);
	int takePhysicalDamage(Mob& m);
};

mob.h:

#pragma once
#include <string>
#include "Player.h"

using namespace std;

class Mob
{
public:
	enum mobType {
		PHYSIC,
		MAGIC
	};

	enum attackDir {
		HEAD,
		BODY,
		LEGS
	};

	int health, armor, magicResistance, shockResistance;
	int currentHealth, damage, spreadDamage;
	string name;
	mobType attackType;

	

	/**
	 * Конструктор класса Mob.
	 * Принимает 3 аргумента
	 * _health - здоровье моба
	 * _magicResistance - защита от магического урона
	 * _shockResistance - защита от физического урона
	 * _damage - урон
	 * _spreadDamage - Разброс урона
	 * _name - Имя моба
	 * type - тип атаки моба
	 */
	Mob(int _health, int _magicResistance, int _shockResistance, int _damage, int _spreadDamage, string _name, mobType type);
	int takePhysicalDamage(Player* player, attackDir dir);
	int takeMagicalDamage(Player* player, attackDir dir);
};

TimSan

1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

1

Обработчик событий в Лист Бокс

26.05.2012, 11:32. Показов 1812. Ответов 16

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

В первой форме есть Есть Listbox1 со списком
Нужно открыть Форму 2 при выборе одной строки и записать содержимое сроки в textbox1 во второй форме. Помогите написать обработчик событий ListBox

C++
1
2
    private: System::Void listBox1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
                 Form2^ frm2=gecnew Form2();



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

26.05.2012, 11:32

Ответы с готовыми решениями:

Разбираем Лист бокс.
Должно выводить матчи в лист бокс . Когда один матч вводишь все хорошо , а когда вводишь второй ,…

ImageList и список лист бокс
Привет всем.Подскажите как сделать чтоб загружалось сразу много картинок.у меня было раньше 2…

Thread поток и лист бокс
Добрый день! Помогите пожалуйста передать цифры в потоке из одного листбокса в другой листбокс….

Выбор строки лист-бокс
Есть этот код в лист-бокс я получаю цифру (число) через поток получаю.

MyStream :=…

16

Петррр

6261 / 3562 / 898

Регистрация: 28.10.2010

Сообщений: 5,926

26.05.2012, 12:19

2

C++
1
2
3
4
5
if (listBox1->SelectedIndex != -1) {
    System::String^ str = listBox1->SelectedItem->ToString();
    Form2^ form = gcnew Form2(str);
    form->Show();
}
C++
1
2
3
4
5
Form2(System::String^ str)
{
    InitializeComponent();
    textBox1->Text = str;
}



2



1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

26.05.2012, 12:43

 [ТС]

3

Вылезли ошибки

Form1.h(106): error C2065: Form2: необъявленный идентификатор
Form1.h(106): error C2065: form: необъявленный идентификатор
Form1.h(106): error C2061: синтаксическая ошибка: идентификатор «Form2»
Form1.h(107): error C2065: form: необъявленный идентификатор
Form1.h(107): error C2227: выражение слева от «->Show» должно указывать на тип класса, структуры или объединения либо на универсальный тип
тип: ‘unknown-type’
Form1.h(106): error C3673: miControl::Form2: у класса нет конструктора копии
Form1.h(106): error C3673: miControl::Form2: у класса нет конструктора копии



0



Петррр

6261 / 3562 / 898

Регистрация: 28.10.2010

Сообщений: 5,926

26.05.2012, 14:08

4

C++
1
#include "Form2.h"



1



TimSan

1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

26.05.2012, 16:35

 [ТС]

5

C++
1
2
3
4
5
#pragma once
#include <iostream>
#include <stdio.h>
#include <string>
#include"Form2.h"

Все строки что включины но ошибки выдает в чем дело?
Не подскажете?



0



Комп_Оратор)

Эксперт по математике/физике

8863 / 4602 / 621

Регистрация: 04.12.2011

Сообщений: 13,740

Записей в блоге: 16

26.05.2012, 17:16

6

Цитата
Сообщение от TimSan
Посмотреть сообщение

Form1.h(106): error C3673: miControl::Form2: у класса нет конструктора копии

TimSan, обратите внимание на то, что Петррр говорит во втором посте. Вы переписали конструктор (дополнили аргументом System::String^ str ?)



0



TimSan

1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

26.05.2012, 19:58

 [ТС]

7

Цитата
Сообщение от Петррр
Посмотреть сообщение

C++
1
2
3
4
5
if (listBox1->SelectedIndex != -1) {
    System::String^ str = listBox1->SelectedItem->ToString();
    Form2^ form = gcnew Form2(str);
    form->Show();
}
C++
1
2
3
4
5
Form2(System::String^ str)
{
    InitializeComponent();
    textBox1->Text = str;
}

Писал ошибку устранилась с помощью

C++
1
2
3
  Form2^ form2 = gcnew Form2; 
        form2->Show(); 
        this->Form1::Hide();



0



IGPIGP

Комп_Оратор)

Эксперт по математике/физике

8863 / 4602 / 621

Регистрация: 04.12.2011

Сообщений: 13,740

Записей в блоге: 16

26.05.2012, 21:50

8

TimSan, этот фрагмент:

Цитата
Сообщение от TimSan
Посмотреть сообщение

1

C++
1
2
3
4
Form2(System::String^ str)
{
 InitializeComponent();
 textBox1->Text = str;

}

показывает, как изменить код конструктора второй формы. Найдите его в Form2.h не далеко от начала описания класса фомы словами похожими на:

C++
1
public ref class Form2:System::Windows Forms::Form{

и измените. Код предложенный Вами для создания и запуска, в первой форме верните.
Ведь то, что Вы показали не пишет в textBox1 второй формы.
Вы могли бы написать:

C++
1
2
3
4
Form2^ form2 = gcnew Form2; 
        form2->Show();
form2->textBox1->Text="Hello, from the first Form!"; 
        this->Form1::Hide();

но для этого, нарушая ООП, требуется изменить:

C++
1
private:

на

C++
1
public:

в объвлении textBox1 второй формы.
Поэтому попробуйте сделать, то что предложил Петррр.

Добавлено через 1 час 12 минут

Цитата
Сообщение от IGPIGP
Посмотреть сообщение

public ref class Form2:System::Windows Forms::Form{

Неточно написал.
В начале файла Form2.h после окончания объявления namespace’ов после строки:

C++
1
public ref class Form2 : public System::Windows Forms::Form

ищите объявление:

C++
1
2
3
4
5
6
Form2(void){
InitializeComponent();
//
//TODO: Add the constructor code there
//
}

измените его как предложено.
И в первой форме создайте и покажите экземпляр как показано в примере.



1



1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

27.05.2012, 07:51

 [ТС]

9

Можете подсказать ту почему пишет ошибку Строки 107-108?
Подскажите где ошибка?



0



Комп_Оратор)

Эксперт по математике/физике

8863 / 4602 / 621

Регистрация: 04.12.2011

Сообщений: 13,740

Записей в блоге: 16

27.05.2012, 12:44

10

Цитата
Сообщение от TimSan
Посмотреть сообщение

почему пишет ошибку Строки 107-108

Думаю, нужно посмотреть Form2.h. Не видит компилятор объявления и описания. Возможно файл называется Form2.h, а имя класса Вы задали вручную, например form2 или f2… Да разные могут быть варианты. Я в той теме попросил показать код. Поглядим.



0



TimSan

1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

27.05.2012, 14:49

 [ТС]

11

Заново создал другой проект пробую ваши варианты но не получается
Форма1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#pragma once
#include <stdio.h>
#include <iostream>
#include "Form2.h"
#include "Form3.h"
 
namespace Form001 {
 
    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>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::ListBox^  listBox1;
    protected: 
    private: System::Windows::Forms::ComboBox^  comboBox1;
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->listBox1 = (gcnew System::Windows::Forms::ListBox());
            this->comboBox1 = (gcnew System::Windows::Forms::ComboBox());
            this->SuspendLayout();
            // 
            // listBox1
            // 
            this->listBox1->FormattingEnabled = true;
            this->listBox1->Items->AddRange(gcnew cli::array< System::Object^  >(6) {L"01", L"02 ", L"03 ", L"04 ", L"112 ", 
            L"911"});
            this->listBox1->Location = System::Drawing::Point(12, 44);
            this->listBox1->Name = L"listBox1";
            this->listBox1->Size = System::Drawing::Size(130, 17);
            this->listBox1->TabIndex = 0;
            this->listBox1->Click += gcnew System::EventHandler(this, &Form1::listBox1_Click);
            // 
            // comboBox1
            // 
            this->comboBox1->FormattingEnabled = true;
            this->comboBox1->Items->AddRange(gcnew cli::array< System::Object^  >(6) {L"01", L"02 ", L"03 ", L"04 ", L"05 ", 
                L"112"});
            this->comboBox1->Location = System::Drawing::Point(181, 44);
            this->comboBox1->Name = L"comboBox1";
            this->comboBox1->Size = System::Drawing::Size(151, 21);
            this->comboBox1->TabIndex = 1;
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(344, 119);
            this->Controls->Add(this->comboBox1);
            this->Controls->Add(this->listBox1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void listBox1_Click(System::Object^  sender, System::EventArgs^  e) {
             Form2^form2=gcnew Form2;
             Form2->Show();
             }
    };
}

Форма2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#pragma once
#include "Form1.h"
//#include "Form2.h"
 
namespace Form001 {
 
    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>
    /// Сводка для Form2
    /// </summary>
    public ref class Form2 : public System::Windows::Forms::Form
    {
    public:
        //Form2(void)
        Form2(Sistem::String^str);
        {
            InitializeComponent();
            textBoxs1->Text=str;
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form2()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Panel^  panel1;
    private: System::Windows::Forms::TextBox^  textBox1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->panel1 = (gcnew System::Windows::Forms::Panel());
            this->textBox1 = (gcnew System::Windows::Forms::TextBox());
            this->SuspendLayout();
            // 
            // panel1
            // 
            this->panel1->Location = System::Drawing::Point(46, 120);
            this->panel1->Name = L"panel1";
            this->panel1->Size = System::Drawing::Size(196, 118);
            this->panel1->TabIndex = 0;
            // 
            // textBox1
            // 
            this->textBox1->Location = System::Drawing::Point(46, 35);
            this->textBox1->Name = L"textBox1";
            this->textBox1->Size = System::Drawing::Size(196, 20);
            this->textBox1->TabIndex = 1;
            // 
            // Form2
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(284, 264);
            this->Controls->Add(this->textBox1);
            this->Controls->Add(this->panel1);
            this->Name = L"Form2";
            this->Text = L"Form2";
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
#pragma endregion
    };
}

1>—— Построение начато: проект: Form001, Конфигурация: Debug Win32 ——
1> Form001.cpp
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(22): error C2059: синтаксическая ошибка: {
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(22): error C2334: непредвиденные лексемы перед «{«; пропуск вероятного тела функции
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(97): error C2512: Form001::Form2::Form2: нет подходящего конструктора по умолчанию
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(98): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(98): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»
1> Form2.cpp
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(97): error C2065: Form2: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(97): error C2065: form2: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(97): error C2061: синтаксическая ошибка: идентификатор «Form2»
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(98): error C2065: Form2: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(98): error C2227: выражение слева от «->Show» должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: ‘unknown-type’
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(22): error C2059: синтаксическая ошибка: {
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(22): error C2334: непредвиденные лексемы перед «{«; пропуск вероятного тела функции
1> Form3.cpp
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(22): error C2059: синтаксическая ошибка: {
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(22): error C2334: непредвиденные лексемы перед «{«; пропуск вероятного тела функции
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(97): error C2512: Form001::Form2::Form2: нет подходящего конструктора по умолчанию
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(98): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»
1>c:usersuzerdocumentsvisual studio 2010projectsform001Form1.h(98): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»
1> Создание кода…
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========



0



IGPIGP

Комп_Оратор)

Эксперт по математике/физике

8863 / 4602 / 621

Регистрация: 04.12.2011

Сообщений: 13,740

Записей в блоге: 16

27.05.2012, 15:13

12

Цитата
Сообщение от TimSan
Посмотреть сообщение

Form2(Sistem::String^str);

TimSan, …. смотрите:

C++
1
Form2(System::String^str)

Смотрите, что говорит компилятор (он язва конечно, но читать нужно):

Цитата
Сообщение от TimSan
Посмотреть сообщение

1>c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h(21): error C2653: Sistem: не является именем класса или пространства имен

перевожу:
c:usersuzerdocumentsvisual studio 2010projectsform001Form2.h //имя файла где ошибка
(21): //номер строки где ошибка!
error C2653: Sistem: не является именем класса или пространства имен //код ошибки и её название!

когда переправите Sistem::String^ на System::String^
исправьте в строке 98 (компилятор) на вариант, что Вам предлагали.

C++
1
2
Form2^form2=gcnew Form2(str);
             Form2->Show();

иначе не будет работать!



1



TimSan

1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

27.05.2012, 16:03

 [ТС]

13

Исправил ошибок меньше но есть

C++
1
2
3
4
private: System::Void listBox1_Click(System::Object^  sender, System::EventArgs^  e) {
                 Form2^ form2 = gcnew Form2(str);
                 Form2-> Show();
             }

может я его не на то событие вешаю? ставлю на клик.

C++
1
2
3
4
    Form2(System::String^ str)
        {
            InitializeComponent();
            textBox1->Text str;//это во второй форме
C++
1
2
#include "Form1.h"
#include <string>

подключен во форме2

C++
1
2
#pragma once
#include "Form2.h"

В форме1

а выдаёт

c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(96): error C2065: Form2: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(96): error C2065: form2: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(96): error C2061: синтаксическая ошибка: идентификатор «Form2»
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(97): error C2065: Form2: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(97): error C2227: выражение слева от «->Show» должно указывать на тип класса, структуры или объединения либо на универсальный тип
1> тип: ‘unknown-type’
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form2.h(25): error C2146: синтаксическая ошибка: отсутствие «;» перед идентификатором «str»
1> Forms001.cpp
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form2.h(25): error C2146: синтаксическая ошибка: отсутствие «;» перед идентификатором «str»
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(96): error C2065: str: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(97): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(97): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»
1> Создание кода…
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========



0



IGPIGP

Комп_Оратор)

Эксперт по математике/физике

8863 / 4602 / 621

Регистрация: 04.12.2011

Сообщений: 13,740

Записей в блоге: 16

27.05.2012, 16:15

14

Цитата
Сообщение от TimSan
Посмотреть сообщение

private: System::Void listBox1_Click(System::Object^ sender, System::EventArgs^ e) { Form2^ form2 = gcnew Form2(str); Form2-> Show(); }

TimSan, сделайте то что советовал Петррр

C++
1
2
3
4
private: System::Void listBox1_Click(System::Object^ sender, System::EventArgs^ e) {
System::String^ str=this->TextBox1->Text; //str - создали и инициализировали
 Form2^ form2 = gcnew Form2(str);//передали
 Form2-> Show();

Теперь о включении файлов:
если
#include «Form1.h»//уберите!
в Form2.h
и одновременно:
#include «Form2.h»
в Form1.h
тоже не будет даже компилироваться.
Пока не почитаете:
Как из второго окна обратиться к элементам первого?
Как добавить кнопки на вторую форму?
Как связать 2 формы?
нет смысла и пробовать.



1



TimSan

1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

27.05.2012, 18:15

 [ТС]

15

Почти все ошибки одолел осталось 3
подскажите я не догоняю

C++
1
2
Form2^form=gcnew Form2;(str);
                 Form2->Show();

[/С]1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(98): error C2512: Forms001::Form2::Form2: нет подходящего конструктора по умолчанию
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(98): error C2065: str: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(99): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»



0



IGPIGP

Комп_Оратор)

Эксперт по математике/физике

8863 / 4602 / 621

Регистрация: 04.12.2011

Сообщений: 13,740

Записей в блоге: 16

27.05.2012, 18:34

16

Цитата
Сообщение от TimSan
Посмотреть сообщение

[С]
Form2->Show();
[/С]1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(98): error C2512: Forms001::Form2::Form2: нет подходящего конструктора по умолчанию
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(98): error C2065: str: необъявленный идентификатор
1>c:usersuzerdocumentsvisual studio 2010projectsforms001Form1.h(99): error C2143: синтаксическая ошибка: отсутствие «;» перед «->»

Посторочно:
1.

C++
1
 Form2^form=gcnew Form2 ; (str);

уберите лишнюю кавычку:

C++
1
 Form2^form=gcnew Form2(str);

Вообще, Вы упорно не хотите читать, что предложено.
Просто читайте, что Вам уже сказано и делвйте, лучше копипастом, т.к. руками что-то не шибко…
Вот отсюда скопируйте код:

Цитата
Сообщение от IGPIGP
Посмотреть сообщение

TimSan, сделайте то что советовал Петррр
private: System::Void listBox1_Click(System::Object^ sender, System::EventArgs^ e) {
System::String^ str=this->TextBox1->Text; //str — создали и инициализировали
Form2^ form2 = gcnew Form2(str);//передали
Form2-> Show();

без знаков, форматирования цитаты…
В этом фрагменте создаётся строка, заполняется строкой из textBox1 первой формы и передаётся в конструктор второй формы.
Вообще, стоит Вам почитать литературу. Что бы такие вещи как тип, область видимости, область действия и время жизни стали ближе. Основы ООП тоже нужны. Без понятий о классах, любое самостоятельное действие грозит перейти в классовую борьбу…



0



1 / 3 / 0

Регистрация: 02.05.2012

Сообщений: 27

27.05.2012, 19:02

 [ТС]

17

Блин да все набиралось с примера не копипаст а «Лишние» ковычки результат ругательств среды сейчас приведу пример он почему то считает что там они должны быть

Обработчик событий в Лист Бокс



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

27.05.2012, 19:02

Помогаю со студенческими работами здесь

Занесение данных в лист бокс
Помогите, пожалуйста, с программой. Очень нужно, в программировании не айс, не получается у меня…

Лист-бокс и вес файла
В лист-боксе написаны путя, дириктории файлов которых нужно узнать вес и написать вес напротив…

Как вывести во второй лист бокс файлы с измененным хешем?
есть программа которая вывдит в листбокс название файла и его хеш. как вывести во второй лист бокс…

Обработчик событий
Доброго времени суток уважаемые эксперты! Вообщем есть проблема, есть у меня 3 компонента типа…

Обработчик событий | VB to C#
Пожалуйста, подскажите, как перенести данный код из VB в C#
Private Sub Window_Loaded(sender As…

Обработчик событий
Всем привет!
Интересная задача, очень хотелось бы разобраться в чем проблема. Помогите,…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

17

  • Error at loading of ippcv library photoshop 2021 решение ошибки
  • Error archive data corrupted unarc dll вернул код ошибки 5 не хватает памяти
  • Error 999999 ошибка выполнения функции arcgis
  • Error 80004005 неопознанная ошибка elsa
  • Error 601 battery как убрать ошибку