Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 1

Передача данных между формами

30.05.2019, 18:36. Показов 1505. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую, форумчане
Возникла проблема при передаче данных между формами.
Необходимо передать данные из второй формы (AddPrisoner) в первую в dataGridView1 (MyForm)
Но при компиляции выводится ошибка:
Передача данных между формами

Кусочки кода первой формы (MyForm)
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
#pragma once
#include "AddPrisoner.h"
#include <string>
#include <iostream>
namespace DataGrid {
    using namespace std;
    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 MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
 
    public:
        MyForm()
        {
            InitializeComponent();
            
        }
Обработчик кнопки из первой формы (MyForm), которая открывает вторую форму (AddPrisoner)
C++ Скопировано
1
2
3
4
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        AddPrisoner^ f = gcnew AddPrisoner();
        f->ShowDialog();    
    }
Кусочки кода второй формы (AddPrisoner)
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
#pragma once
 
#include <string.h>
#include <iostream>
 
 
namespace DataGrid {
 
    using namespace std;
    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 AddPrisoner
    /// </summary>
    public ref class AddPrisoner : public System::Windows::Forms::Form
    {
    public:
        AddPrisoner()
        {
            InitializeComponent();
        }
И обработчик кнопки второй формы (AddPrisoner) которая должна в dataGridView1 в первой форме (MyForm) добавить данные из textBox1, которая находится во второй форме (AddPrisoner)
C++ Скопировано
1
2
3
4
public: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        MyForm^ add = gcnew MyForm();
        add->dataGridView1->Rows->Add(textBox1->Text);
    }
На всякий случай добавлю .cpp самого проекта DataGrid, мало ли косяк здесь
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "MyForm.h"
#include "AddPrisoner.h"
 
using namespace System;
using namespace System::Windows::Forms;
 
int main(array<System::String ^> ^args)
{
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    DataGrid::MyForm main_form;
    Application::Run(%main_form);
    return 0;
}
Делаю все в CLI/C++ Windows Form, так как по другому создать форму в VS2017 не могу.
Пробовал и другие способы передачи данных, но тогда вместо 4 ошибок выводит целую тучу
Кто может, объясните четко, что в данной ситуации необходимо делать. Специальные книжки и другие темы на форуме не помогают решить проблему (Либо до меня туго доходит)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2019, 18:36
Ответы с готовыми решениями:

Передача ссылки в конструктор (передача данных между формами)
Из темы &quot;Ответы на 7 самых частых вопроса по WinForms&quot; Реализовал метод № 2.3 без проблем, а вот 2.4 не получается( вот текст из той...

Передача данных между формами
Есть форма MyForm.h и MyForm1.h, в MyForm есть переменная int t=3, как значение этой переменной передать в MyForm1.h?

Передача данных между формами
Здравствуйте товарищи знатоки. Сегодня постала задача: существует вторичная форма Form2, в этой форме 2 элемента textBox и кнопка. Так...

1
863 / 513 / 215
Регистрация: 19.01.2019
Сообщений: 1,216
16.06.2019, 22:39
Вторая форма не видит первую.

C++ Скопировано
1
2
3
4
5
6
7
private: System::Void button1_Click(System::Object^ *sender, System::EventArgs^ *e) {
    AddPrisoner^ f = gcnew AddPrisoner();
    f->ShowDialog();
    // например, можно вытащить данные тут:
    this->dataGridView1->Rows->Add(f->textBox1->Text);
    //
}
или передать указатель на переменную аргументом в конструктор второй формы
или подписаться на ивент текстбокса второй формы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.06.2019, 22:39
Помогаю со студенческими работами здесь

Передача данных между формами
Такая тема неоднократно подымалась на просторах и-нета, но удовлетворительного для себя ответа я так и не нашел. Для примера рассмотрим...

Обмен данных между формами
Ктонибудь может подсказать как можно передать данные между формами? Добавлено через 5 часов 34 минуты попробовал зделать вот так ...

Ответы на 7 самых частых вопросов по Windows Forms, C++/CLI Edition - свой способ передачи данных между формами
Способ с использованием макросов. Средней сложности в реализации и понимании, не знаю, нарушает ли ООП, передача данных возможна в обе...

Связь между формами
Здравствуйте, у меня следующая проблема. Есть две формы, в заглавной в listView хранятся данные, которые нужно перекинуть во вторую...

Переключение между формами.
Всем доброго времени суток. Не могу понять как сделать переход между формами. Есть Form1 и Form2. Сделал кнопку, в ней написал: ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
Реляционная модель и правила Кодда: фундамент современных баз данных
Codd 05.04.2025
Конец 1960-х — начало 1970-х годов был периодом глубоких трансформаций в области хранения и обработки данных. На фоне растущих потребностей бизнеса и правительственных структур существовавшие на тот. . .
Асинхронные операции в Django с Celery
py-thonny 05.04.2025
Разработчики Django часто сталкиваются с проблемой, когда пользователь нажимает кнопку отправки формы и. . . ждёт. Секунды растягиваются в минуты, терпение иссякает, а интерфейс приложения замирает. . . .
Использование кэшей CPU: Максимальная производительность в Go
golander 05.04.2025
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер