Страница 1 из 1

Открытие одной формы из другой

Добавлено: 23 май 2015, 23:24
Крылья
Ребят, у меня есть форма "MyForm" , я добавил в проект вторую форму "MyForm1"......
Задача следующая 1) на первой форме будет кнопка, по нажатию по ней должна всплывать вторая форма и у второй формы должен вызываться один из методов для отображения данных, как мне это сделать???
2)я знаю что мне в первой форме нужно подключить #include <MyForm1> но почемуто когда я так прописываю он на неё ругается((( у меня есть кое какие мысли на этот счет, дело в том что у меня vs13 версия и для того чтобы первая форма работала я прописывал в одном файлике вот эту запись

Код: Выделить всё

#include "MyForm.h"

using namespace System;
using namespace System::Windows::Forms;

[STAThread]
void Main(array<String^>^args)
{
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false)

	График::MyForm form;
	Application::Run(%form);

}
может мне на второй форме что-то подобное сделать надо и он будет определять её, кто знает буду благодарен

Re: форма проблема

Добавлено: 25 май 2015, 12:05
Romeo
Ты путаешь С++ и C++/CLI. Это, по сути, два разных языка.

Re: форма проблема

Добавлено: 25 май 2015, 15:04
WinMain
Здесь всё довольно просто, если сделать это правильно.
1. В исходный код вызывающей формы (в твоём случае это файл MyForm.h) нужно включить заголовочный файл класса второй формы, например: пусть это будет SecondForm.

Код: Выделить всё

#include "SecondForm.h"
Заметь: включаемый файл должен быть взят в кавычки, а не в угловые скобки. И расширение .h должно присутствовать обязательно.

2. В метод обработчика нажатия кнопки нужно добавить всего пару строчек кода...

Код: Выделить всё

	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 SecondForm^ sf = gcnew SecondForm();
				 sf->ShowDialog(this);
			 }

Re: форма проблема

Добавлено: 25 май 2015, 16:49
Крылья
спасибо, ошибка в том что я не в ковычки брал...у меня еще вопрос, мне нужно чтобы по нажатию кнопки открывалась вторая форма (то что я сделал) и чтобы во второй форме сразу вызывался его метод который сразу будет выводить информацию в его текст бокс (я это сделал) реализацию дана ниже->

MyForm1^ sf = gcnew MyForm1();
sf->wert(); //метод который выводит информацию в textbox
sf->ShowDialog(this);

только почему я должен сначало вызвать метод а потом отобразить!? почему не отобразить окно а потом вызвать метод

Re: форма проблема

Добавлено: 25 май 2015, 22:19
Крылья
и еще проблема такая. как мне сделать так чтобы, по нажатию по кнопке открывалась второе окно, и чтобы можно перейти обратно к первому окну без закрытия второго, нажать еще раз по кнопке и вывелось еще окно второй формы????

Re: форма проблема

Добавлено: 26 май 2015, 05:56
WinMain
Крылья писал(а):и еще проблема такая. как мне сделать так чтобы, по нажатию по кнопке открывалась второе окно, и чтобы можно перейти обратно к первому окну без закрытия второго, нажать еще раз по кнопке и вывелось еще окно второй формы????
Для этого метод sf->ShowDialog(this); нужно заменить на метод sf->Show();