|
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 22
|
||||||||||||||||
Как из второго окна обратиться к элементам первого?05.03.2012, 17:39. Показов 16880. Ответов 32
Метки нет (Все метки)
Здравствуйте!
Изучаю VS C++. Создал проект Windows Forms в среде CLR. Есть два окна, второе (Form_insert) вызывается из первого(Form1). Из первого окна я спокойно управляю элементами во втором. А из второго окна обратиться к элементам первого не могу ![]() Так вызываю второе окно
или так:
0
|
||||||||||||||||
| 05.03.2012, 17:39 | |
|
Ответы с готовыми решениями:
32
Массив. Элементы второго кратны 3 элементам первого массива Элементы первого массива прибавить к элементам второго и образовать третий Как из первого класса достучаться до объекта второго, а из второго до метода первого? |
|
74 / 54 / 12
Регистрация: 20.02.2012
Сообщений: 239
|
|
| 05.03.2012, 17:41 | |
|
dopton, а вы сослались на модуль первой формы? То есть использовали типа #include "Form_insert.h".
0
|
|
|
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 22
|
|||||||
| 05.03.2012, 21:05 [ТС] | |||||||
|
В модуле первой формы я ссылаюсь на вторую. Со второй на первую не ссылаюсь, иначе компилятор в заголовочном файле первой формы не понимает класс Form_insert
error C2065: Form_insert: необъявленный идентификатор error C2065: nwDlg: необъявленный идентификатор error C2061: синтаксическая ошибка: идентификатор "Form_insert" error C2065: nwDlg: необъявленный идентификатор error C2227: выражение слева от "->set_text" должно указывать на тип класса, структуры или объединения либо на универсальный тип error C2065: nwDlg: необъявленный идентификатор error C2227: выражение слева от "->Show" должно указывать на тип класса, структуры или объединения либо на универсальный тип Добавлено через 12 минут
0
|
|||||||
|
Комп_Оратор)
|
|||||||||||||||||||||||||||||||||||||||||
| 06.03.2012, 20:05 | |||||||||||||||||||||||||||||||||||||||||
Сообщение было отмечено как решение
Решение
Объявите в Form2 скажем TextBox^ posilochka (public!)
В Form1 какй-то public: textBox11 После запуска Form2 child1 в Form1 напишите:
Это "хулиганство", но, как говорится - дёшево и сердито! //**************************************** ************// Если хотите по-другому "правильнее" и сложнее вот ещё вариант: Сделаем изменение текста в форме1 из формы2: 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:
Form1.cpp:
Еще можно посмотреть обсуждение на зарубежном форуме по этой же проблеме - Submitting Form2 and changing Form1 by it's value. К сожалению ссылка потерялась но по Submitting Form2 and changing Form1 by it's value Google выдаст Вам ссыдку на MSDN.
4
|
|||||||||||||||||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 17.02.2009
Сообщений: 22
|
|
| 07.03.2012, 22:33 [ТС] | |
|
Спасибо, заработало! Воспользовался "правильным" вариантом
0
|
|
|
5 / 5 / 0
Регистрация: 27.03.2012
Сообщений: 21
|
|
| 29.03.2012, 13:03 | |
|
IGPIGP,
скажите как можно объявить переменные во 2 офрме
0
|
|
|
5 / 5 / 0
Регистрация: 27.03.2012
Сообщений: 21
|
|
| 29.03.2012, 15:32 | |
|
у меня есть Form1 в ней ессть кнопка открывающая Form2
когда я пишу допустим int a в Form1 то ошибок нет и все нормально работает а если я пишу в Form2 int b то появляется ошибка переопределения Error LNK2005 есле в Form1 удалить #include "Form2.h" то ошибок не будет но Form2 не откроется
0
|
|
|
Комп_Оратор)
|
||
| 29.03.2012, 15:52 | ||
|
0
|
||
|
5 / 5 / 0
Регистрация: 27.03.2012
Сообщений: 21
|
|
| 29.03.2012, 15:58 | |
|
переменная объявленна только в Form2
0
|
|
|
Комп_Оратор)
|
||
| 29.03.2012, 16:10 | ||
|
int myBolshoyBizonKotoriyGivetZaBugrom=0; если уже нет выхода можно локализовать конфликтующее имя в своём пространстве имён, но у Вас похоже не тот случай.
0
|
||
|
4 / 4 / 0
Регистрация: 08.11.2011
Сообщений: 137
|
|
| 16.05.2012, 00:17 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 16
|
||||||||||||||||
| 22.02.2013, 10:30 | ||||||||||||||||
|
IGPIGP,
делала как вы написали, но у меня ошибка Form2: необъявленный идентификатор по заданию во второй форме в textbox вводится слово и добавляется в первую форму в listbox сделала так
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' подскажите пожалуйста, что сделала не так?
0
|
||||||||||||||||
|
Комп_Оратор)
|
|
| 22.02.2013, 12:49 | |
|
darya17, Вы сделали иначе. Прочтите всё внимательно. Начните всё с пустой формы и сделайте как написано. Дело тут не в сообразительности, а в относительной сложности, для человека который это делает впервые.
1. В Main не нужно подключать 2 формы. Туда подключается главная, стартовая Form1 (обычно). 2. Во второй форме Вы ничего не подключили. Подключить это вставить в начало файла директивой #include "Form1.h". Иначе имя Form1 в файле Form2.h -ничего компилятору не говорит. Об этом он и горюет. Итак сосредоточьтесь, начните сначала и сделайте всё пошагово. Особенно внимательно вычитайте диалоги о ошибках предшественников. Я часто даю ссылки на эти темы потому, что подобные ошибки это вечные грабли для новичков.
0
|
|
|
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 16
|
|
| 22.02.2013, 14:09 | |
|
IGPIGP,
перед самим кодом я написала к Form2.h подключила Form1.h. создала пустую форму как Вы и сказали, но к сожалению та же ошибка.
0
|
|
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
|||||||||||
| 22.02.2013, 14:23 | |||||||||||
|
darya17, ошибка здесь
не Form1 , а просто Form - это вам не С# Это не правильно
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 16
|
||||||||||||||||
| 22.02.2013, 15:08 | ||||||||||||||||
|
MrCold,
исправила, но не очень помогло, теперь ругается на метод Set... посмотрите пожалуйста, может еще где то не то пишу.
1>c:\users\сергей\documents\visual studio 2010\projects\f\f\Form2.h(92): error C2039: Set: не является членом "System::Windows::Forms::Form" 1> c:\program files\reference assemblies\microsoft\framework\.netframe work\v4.0\system.windows.forms.dll: см. объявление "System::Windows::Forms::Form" 1>f.cpp(8): error C2882: Form2: недопустимое использование идентификатора пространства имен в выражении 1>f.cpp(8): error C2065: f2: необъявленный идентификатор 1>f.cpp(8): error C2061: синтаксическая ошибка: идентификатор "Form2" 1>f.cpp(9): error C2065: f2: необъявленный идентификатор 1>f.cpp(9): error C2227: выражение слева от "->Show" должно указывать на тип класса, структуры или объединения либо на универсальный тип 1> тип: 'unknown-type' 1> Form2.cpp 1>c:\users\сергей\documents\visual studio 2010\projects\f\f\Form2.h(92): error C2039: Set: не является членом "System::Windows::Forms::Form" 1> c:\program files\reference assemblies\microsoft\framework\.netframe work\v4.0\system.windows.forms.dll: см. объявление "System::Windows::Forms::Form"
0
|
||||||||||||||||
|
Комп_Оратор)
|
|||||||||||
| 22.02.2013, 15:40 | |||||||||||
Как сделать так, чтобы разные файлы могли видеть друг друга? Ошибки при вызове форм - Syntax error Как добавить кнопки на вторую форму? И сделайте всё сначала. Вы повторяете те же ошибки. Например namespace testApp это пространство моего проекта, а Вам нужно Ваше f если я понимаю верно. Хотя оно может быть любое, но Ваше, myLab2 например. И ещё дескриптор form1, в этом случае я бы присвоил так:
![]() Не по теме: darya17, в этой теме всё уже произошло. Почему бы не общаться в своей теме. Ведь это трудновато читать другим будет. ;)
0
|
|||||||||||
|
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
|
||||||||||||
| 22.02.2013, 16:02 | ||||||||||||
|
Form1.h
1
|
||||||||||||
|
Комп_Оратор)
|
|
| 22.02.2013, 16:05 | |
|
0
|
|
| 22.02.2013, 16:05 | |
|
Помогаю со студенческими работами здесь
20
Запуск второго консольного окна из первого
Как обратиться к элементам ArrayList? Выходной поток первого числа, второго , суммы первого и второго чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|