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

Вызов формы из класса

05.12.2015, 16:56. Показов 4057. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо написать класс, который вызывается по кнопке и создает вторую форму.
Создал кнопку вызывающую класс
Myform.h
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
#include "MyForm1.h"
#include "ButtonForm.h"
namespace Проект1
{
using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    public ref class MyForm : public System::Windows::Forms::Form
  {
    public:
        MyForm(void)
        {
            InitializeComponent();
        }
                MyForm1^ F1;
        ...//Часть стандартного кода, инициализации кнопок,лейблов и текстобоксов
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
    {                
                 ButtonForm  pa;
                 pa.B0(F1)
        }
  }
}
Далее создал заголовочный файл для класса
ButtonForm.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
#pragma once
#include "Factory.h"
#include "MyForm1.h"
using namespace std;
using namespace System;
using namespace System::Windows::Forms;
 
class ButtonForm
{
public:
    void B0(ref class Проект1::MyForm1^F1);
};
После чего ButtonForm.срр
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "ButtonForm.h"
#include "MyForm1.h"
#include "MyForm.h"
using namespace std;
using namespace System;
using namespace System::Windows::Forms;
void ButtonForm::B0(ref class Проект1::MyForm1^F1)
{
    MyForm1^F1;
    F1 = gcnew MyForm1()
    F1->Show();
}
До этого был сделан вызов формы из формы и он прекрасно работает, а вот как переделать его так чтоб форма вызывала класс, а класс уже вторую форму - не знаю. Искал в сети - ничего путного.
Список ошибок :
error C2065: MyForm1: необъявленный идентификатор Ошибка указывает на "MyForm1^F1;" в ButtonForm.h
error C2061: синтаксическая ошибка: идентификатор "MyForm1" Ошибка указывает на "F1 = gcnew MyForm1()" в ButtonForm.h
IntelliSense: идентификатор "MyForm1" не определен Ошибка указывает на "MyForm1^F1;" в ButtonForm.h
IntelliSense: требуется спецификатор типа Ошибка указывает на "F1 = gcnew MyForm1()"(а именнно на "MyForm1()") в ButtonForm.h
IntelliSense: требуется точка с запятой ";" Ошибка указывает на "F1->Show();"(после F1 перед ->) в ButtonForm.h
Как я понял он не понимает MyForm1, но я его подключил.

Добавлено через 1 час 1 минуту
Ошибки не в ButtonForm.h, а в ButtonForm.срр
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2015, 16:56
Ответы с готовыми решениями:

Вызов формы без обьекта класса этой формы
Вопрос состоит в следующем...можно ли чтобы при нажатии кнопки вызывалась форма,но сам вызов производить без обьекта класса....например...

Вызов метода в классе формы из класса другого проекта
Есть проект Project1 и Project2 - оба ClassLibrary. В Project1 происходит вызов форми из Project2 (Project2 добавлен в References...

Вызов методов классов друг у друга (вызов метода из другого класса)
Есть несколько классов, которые могут вызывать методы (функции) друг у друга. Логика: класс1 имеет метод А, класс2 имеет метод Б, класс1...

2
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
05.12.2015, 17:39
Лучший ответ Сообщение было отмечено TruganD как решение

Решение

"namespace Проект1" учитываешь? Зачем F1 объявлен в B0(), если уже есть параметр?
1
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 40
05.12.2015, 17:51  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
"namespace Проект1" учитываешь? Зачем F1 объявлен в B0(), если уже есть параметр?
Добавил using namespace Проект1; в ButtonForm.срр, убрал параметры в B0().
Всё заработало. Спасибо огромное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2015, 17:51
Помогаю со студенческими работами здесь

Обращение с формы одного класса к объектам формы другого класса
Такой вопрос: у меня есть основной класс, в котором описано текстовое поле textpane на форме, есть другой класс в котором есть списки(...

Вызов слота класса потомка при вызове сигнала класса родителя
Всем привет. Ситуация следующая. Есть класс родитель "class1". В нём объявлен и вызывается сигнал "signal". Есть класс...

Вызов метода производного класса через обращение к методу базового класса
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Что-то я не понимаю.Вызов метода одного класса из другого класса
Есть два класса первый содержит атрибуты объекта описывающие кнопку: имя, позиция, размер и тд... А так же содержит набор методов для...

Делегаты или вызов метода класса из другого класса
Добрый день! В попытке изучения c# наткнулся на такую проблему: 1. Зачем нужен делегат? Ведь я могу вызвать метод класса из другого...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru