0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 40

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

05.12.2015, 16:56. Показов 4083. Ответов 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 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru